Kann man ein eingebautes Python-Modul bearbeiten?

10

Ich lerne gerade Python und bin an dem Punkt im Buch über die Verwendung der Mathematikbibliothek angelangt. Ich habe auf der Python-Website nachgesehen und festgestellt, dass die Bibliothek etwas knapp ist und ich einige weitere nützliche Funktionen schreibe. Zum Beispiel habe ich eine Funktion geschrieben, um Koeffizienten zu nehmen und die Wurzeln der Gleichung zurückzugeben. Im Wesentlichen eine quadratische Formelfunktion. Ich frage mich, ob es möglich ist, dies zur Python-Mathematikbibliothek hinzuzufügen. Wenn nicht, wie speichere ich es so, dass ich diese Funktion in anderen Python-Programmen verwenden kann, die ich nur durch Aufrufen schreibe?

qzxt
quelle
1
Es gibt eine Antwort von Michael0x2a, die die Feinheiten abdeckt, aber die einfache Version lautet: Tu das nicht. Wenn ich Ihren Code lese und einen Anruf bei math.polynomial_roots()mir sehe, wird mein Dolmetscher verwirrt. Das ist eine schlechte Sache.
msw

Antworten:

10

Das Mathematikmodul ist ein integriertes Modul , so dass Sie den Python-Interpreter selbst nicht ändern können. Ich glaube nicht, dass Sie ihn ändern können. Das Schreiben eines Moduls ist jedoch definitiv etwas, das Sie tun können.

Wenn Sie Ihre Dateien folgendermaßen strukturieren:

somefolder
    mymath.py
    myprogram.py

... Sie können einfach import mymathdrinnen arbeiten myprogram.pyund alle Funktionen oder Klassen drinnen mymath.pywie gewohnt verwenden.

Also wenn es so mymath.pyaussieht:

def quadratic(a, b, c):
    # blah blah blah

Sie könnten das Folgende drinnen tun myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

Wenn Sie möchten, dass das von Ihnen geschriebene Modul für ein beliebiges Programm verfügbar ist, können Sie es entweder kopieren und in den Ordner eines Projekts einfügen, an dem Sie arbeiten, oder es Ihrem PATH hinzufügen. (Zum Beispiel könnten Sie mymath.pyin den Site-Packages-Ordner aufnehmen, der sich C:\Python27\Lib\site-packagesauf meinem Computer befindet.) Sobald Sie dies getan haben, sollten Sie in der Lage sein, import mymathohne jemals etwas kopieren und einfügen zu müssen.

Als Randnotiz hat numpy eine ziemlich umfassende Reihe von mathematik- und naturwissenschaftlichen Funktionen, die Sie ausprobieren können . Es ist so ziemlich der De-facto-Standard für numerische Berechnungen in Python, afaik.

Michael0x2a
quelle
1
Genau die Antwort, die ich geschrieben hätte. Python ist so konzipiert, dass es buchstäblich modifiziert werden kann.
joshin4colours