Czy można edytować wbudowany moduł Python?

10

Obecnie uczę się języka Python i jestem w punkcie książki o korzystaniu z biblioteki Math. Zajrzałem na stronę Pythona i zauważyłem, że biblioteka jest trochę rzadka i piszę kilka bardziej przydatnych funkcji. Na przykład napisałem funkcję pobierającą współczynniki i zwracającą pierwiastki równania. Zasadniczo kwadratowa funkcja formuły. Zastanawiam się, czy można to dodać do biblioteki Math Pythona. Jeśli tak nie jest, jak mogę zapisać tę funkcję, aby móc korzystać z tej funkcji w innych programach Python, które piszę, wywołując ją?

qzxt
źródło
1
Poniżej znajduje się odpowiedź Michael0x2a, która dotyczy drobnych punktów, ale prosta wersja brzmi: nie rób tego. Jeśli czytam twój kod i widzę połączenie do math.polynomial_roots()mnie, a mój tłumacz będzie zdezorientowany. To zła rzecz.
msw

Odpowiedzi:

10

Moduł matematyczny jest wbudowany , więc poza modyfikacją samego interpretera Pythona, nie sądzę, że można go zmodyfikować. Jednak napisanie modułu jest zdecydowanie czymś, co możesz zrobić.

Jeśli uporządkujesz swoje pliki w ten sposób:

somefolder
    mymath.py
    myprogram.py

... możesz po prostu zrobić w import mymathśrodku myprogram.pyi mymath.pynormalnie używać dowolnych funkcji lub klas .

Więc jeśli mymath.pywygląda to tak:

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

Możesz wykonać poniższe czynności w środku myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

Jeśli chcesz, aby moduł, który napisałeś, był dostępny dla dowolnego programu, możesz go skopiować i wkleić do folderu dowolnego projektu, nad którym pracujesz, lub dodać go do ŚCIEŻKI. (Na przykład możesz dołączyć mymath.pydo folderu site-packages, który znajduje się C:\Python27\Lib\site-packagesna moim komputerze). Gdy to zrobisz, powinieneś być w stanie to zrobić import mymathbez konieczności kopiowania i wklejania czegokolwiek.

Na marginesie, numpy ma całkiem obszerny zestaw funkcji związanych z matematyką i naukami, które możesz sprawdzić. To właściwie de facto standard obliczeń numerycznych w Pythonie, afaik.

Michael0x2a
źródło
1
Dokładnie odpowiedź, którą bym napisał. Python został zaprojektowany do modyfikacji, dosłownie.
joshin4colours