Pode-se editar um módulo Python embutido?

10

Atualmente, estou aprendendo Python e estou no ponto do livro sobre o uso da biblioteca de matemática. Eu olhei no site do Python e notei que a biblioteca era um pouco escassa e estou escrevendo algumas funções mais úteis. Por exemplo, fui adiante e escrevi uma função para obter coeficientes e retornar as raízes da equação. Essencialmente uma função de fórmula quadrática. Gostaria de saber se é possível adicionar isso à biblioteca de matemática python. Se não estiver, como faço para salvá-lo para poder usar essa função em outros programas Python que escrevo apenas chamando-o?

qzxt
fonte
11
Há uma resposta abaixo de Michael0x2a que cobre os pontos positivos, mas a versão simples é: não faça isso. Se eu estiver lendo seu código e math.polynomial_roots()vir uma ligação para mim, meu intérprete ficará confuso. Isso é uma coisa ruim.
quer

Respostas:

10

O módulo matemático é embutido , portanto, menos que o próprio interpretador Python, não acho que você possa modificá-lo. No entanto, escrever um módulo é definitivamente algo que você pode fazer.

Se você estruturar seus arquivos assim:

somefolder
    mymath.py
    myprogram.py

... você pode simplesmente fazer import mymathdentro myprogram.pye usar qualquer função ou classe dentro mymath.pynormalmente.

Então, se mymath.pyparece com isso:

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

Você poderia fazer o abaixo dentro myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

Se você deseja que o módulo que você escreveu esteja disponível para qualquer programa, você pode copiá-lo e colá-lo na pasta de qualquer projeto em que estiver trabalhando ou adicioná-lo ao seu PATH. (Por exemplo, você pode incluir mymath.pydentro da pasta pacotes de sites, localizada C:\Python27\Lib\site-packagesem meu computador). Depois de fazer isso, você poderá fazer isso import mymathsem precisar copiar e colar nada.

Como nota lateral, o numpy tem um conjunto bastante abrangente de funções relacionadas a matemática e ciências que você pode conferir. É praticamente o padrão de fato para computação numérica em Python, no Afaik.

Michael0x2a
fonte
11
Exatamente a resposta que eu teria escrito. O Python foi projetado para ser modificado, literalmente.
Joshin4colours