Можно ли редактировать встроенный модуль Python?

10

В настоящее время я изучаю Python, и я сейчас в книге об использовании библиотеки Math. Я заглянул на сайт Python и заметил, что библиотеки немного не хватает, и я пишу еще несколько полезных функций. Например, я пошел дальше и написал функцию для получения коэффициентов и возврата корней уравнения. По сути, квадратная формула функции. Мне интересно, возможно ли добавить это в библиотеку Python Math. Если это не так, как мне сохранить его, чтобы я мог использовать эту функцию в других программах на Python, которые я пишу, просто вызывая ее?

qzxt
источник
1
Ниже есть ответ Michael0x2a, который охватывает тонкости, но простая версия: не делайте этого. Если я читаю ваш код и вижу вызов math.polynomial_roots(), и мой переводчик запутается. Это плохо.
MSW

Ответы:

10

Модуль math является встроенным , поэтому ему не нужно изменять сам интерпретатор Python, я не думаю, что вы можете его изменить. Тем не менее, написание модуля, безусловно, то, что вы можете сделать.

Если вы структурируете свои файлы следующим образом:

somefolder
    mymath.py
    myprogram.py

... вы можете просто делать import mymathвнутри myprogram.py, и использовать любые функции или классы внутри, mymath.pyкак обычно.

Так что, если mymath.pyвыглядит так:

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

Вы могли бы сделать ниже внутри myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

Если вы хотите, чтобы модуль, который вы написали, был доступен для любой программы, вы можете либо скопировать и вставить его в папку любого проекта, над которым вы работаете, либо добавить его в свой PATH. (Например, вы можете включить mymath.pyв папку site-packages, которая находится C:\Python27\Lib\site-packagesна моем компьютере). Как только вы это сделаете, вы сможете делать это import mymathбез необходимости копировать и вставлять что-либо.

Как примечание, у numpy есть довольно полный набор функций, связанных с математикой и естественными науками, которые вы можете проверить. Это в значительной степени де-факто стандарт для численных вычислений в Python, на самом деле.

Michael0x2a
источник
1
Точно ответ я бы написал. Python разработан, чтобы быть в моде, в буквальном смысле.
joshin4colours