¿Se puede editar un módulo Python incorporado?

10

Actualmente estoy aprendiendo Python y estoy en el punto del libro sobre el uso de la biblioteca Math. Miré en el sitio web de Python y noté que la biblioteca era un poco escasa y estoy escribiendo algunas funciones más útiles. Por ejemplo, seguí adelante y escribí una función para tomar coeficientes y devolver las raíces de la ecuación. Esencialmente una función de fórmula cuadrática. Me pregunto si es posible agregar esto a la biblioteca de Python Math. Si no es así, ¿cómo lo guardo para poder usar esa función en otros programas de Python que escribo simplemente llamándolo?

qzxt
fuente
1
Hay una respuesta a continuación por Michael0x2a que cubre los puntos finos, pero la versión simple es: no hagas eso. Si estoy leyendo su código y veo una llamada math.polynomial_roots(), mi intérprete se confundirá. Eso es algo malo.
msw

Respuestas:

10

El módulo matemático está integrado , por lo que, si no se modifica el intérprete de Python, no creo que pueda modificarlo. Sin embargo, escribir un módulo es definitivamente algo que puedes hacer.

Si estructura sus archivos así:

somefolder
    mymath.py
    myprogram.py

... simplemente puedes hacer import mymathdentro myprogram.pyy usar cualquier función o clase dentro de mymath.pyforma normal.

Entonces, si se mymath.pyve así:

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

Podrías hacer lo siguiente dentro myprogram.py

import mymath

print mymath.quadratic(1, 2, 3)

Si desea que el módulo que ha escrito esté disponible para cualquier programa, puede copiarlo y pegarlo en la carpeta de cualquier proyecto en el que esté trabajando, o agregarlo a su RUTA. (Por ejemplo, podría incluir mymath.pydentro de la carpeta de paquetes del sitio, que se encuentra en C:\Python27\Lib\site-packagesmi computadora). Una vez que haga eso, debería poder hacerlo import mymathsin tener que copiar y pegar nada.

Como nota al margen , numpy tiene un conjunto bastante completo de funciones relacionadas con matemáticas y ciencias que puede consultar. Es prácticamente el estándar de facto para el cálculo numérico en Python, afaik.

Michael0x2a
fuente
1
Exactamente la respuesta que hubiera escrito. Python está diseñado para ser modificado, literalmente.
joshin4colours