Si tiene una colección de métodos en un archivo, ¿hay alguna manera de incluir esos archivos en otro archivo, pero llamarlos sin ningún prefijo (es decir, prefijo de archivo)?
Entonces, si tengo:
[Math.py]
def Calculate ( num )
¿Cómo lo llamo así?
[Tool.py]
using Math.py
for i in range ( 5 ) :
Calculate ( i )
from Math import *
se no se recomienda .imp
módulo y llamada mágica__import__
.Simplemente escriba el comando "incluir":
@Deleet:
El comentario de @bfieck es correcto, para la compatibilidad con Python 2 y 3, necesita:
Python 2 y 3: alternativa 1
Python 2 y 3: alternativa 2
fuente
from module import *
? Además, si el archivo al que está llamando tiene código en el cuerpo, ese código se ejecutará, si hace esto.execfile
compile()
que la mencionada. Entonces, Python 2 y 3 correctos: la alternativa 2 será:exec(compile(source=open('myfile.py').read(), filename='myfile.py', mode='exec'))
Si utiliza:
entonces eso te permitirá usar las funciones de Math, pero debes hacer Math.Calculate, por lo que obviamente eso es lo que no quieres.
Si desea importar las funciones de un módulo sin tener que prefijarlas, debe nombrarlas explícitamente, como:
Ahora, puede hacer referencia a Calcular, Sumar y Restar solo por sus nombres. Si desea importar TODAS las funciones de Math, haga:
Sin embargo, debe tener mucho cuidado al hacer esto con módulos cuyo contenido no está seguro. Si importa dos módulos que contienen definiciones para el mismo nombre de función, una función sobrescribirá a la otra, sin que usted se entere.
fuente
He encontrado que el módulo de inspección de Python es muy útil
Por ejemplo con teststuff.py
Y desde otro script o la consola de Python
Y ahora dostuff debería estar en el ámbito local y dostuff () devolverá la consola o los scripts _ name _ mientras que ejecutar test.dostuff () devolverá el nombre de los módulos de Python.
fuente