Estoy lidiando con algún código de Python generado automáticamente para mí. Quiero evitar editar manualmente estos archivos pitón & por lo tanto, esta pregunta/tema:Ámbito de "importación" de Python
foo.py:
def foo():
print "foo"
boo.py:
def boo():
foo.foo() # <-- global name 'foo' not defined
print "boo"
bar.py:
import foo
import boo
def bar():
boo.boo()
print "bar"
Ejecución de:
python.exe bar.py
da un error que Boo No se encontró foo. Pero la barra está importando ambos foo & boo. ¿No debería estar disponible automáticamente para abuchear?
¿Hay alguna manera de hacerlo? Como dicho boo.py se genera automáticamente para mí & Quiero evitar agregar importación foo a boo.py
Gracias.
OK. Pediré a los muchachos que agreguen manualmente "import foo" a todos estos archivos py. Y arreglaré esta herramienta de generación .py más tarde. Gracias. – sambha
@AlexMartelli Me encontré con este truco y para mis propósitos es lo suficientemente bueno. Pero todavía estoy desconcertado sobre todas las implicaciones de poner nombres en el '__builtin__'. Además del problema obvio con las colisiones de nombres, ¿hay algunas otras dificultades notables? – LavaScornedOven