[pyar] consulta: ipython y como acceder al modulo __main__ como dict

Hugo Arregui hugo.arregui en gmail.com
Jue Jul 7 13:45:14 ART 2011


Hola gente,

estoy intentando hacer esto:

#este es el archivo test.py
import sys

class Bar:
    pass

print Bar
print Bar.__module__
print sys.modules[Bar.__module__]
print sys.modules[Bar.__module__].__dict__

este es el output ejecutandolo como $ python test.py

__main__.Bar
__main__
<module '__main__' from 'test.py'>
{'Bar': <class __main__.Bar at 0xb73b8fbc>, '__builtins__': <module
'__builtin__' (built-in)>, '__file__': 'test.py', '__package__': None,
'sys': <module 'sys' (built-in)>, '__name__': '__main__', '__doc__':
None}

este es el output ejecutandolo como $ ipython test.py

__main__.Bar
__main__
<module '__main__' from
'/usr/lib/python2.7/dist-packages/IPython/FakeModule.pyc'>
{'__builtins__': <module '__builtin__' (built-in)>, '__name__':
'__main__', '__file__':
'/usr/lib/python2.7/dist-packages/IPython/FakeModule.pyc',
'__nonzero__': <function <lambda> at 0x94ab33c>}

Mis preguntas serian:
- no hay algo que hace ruido en esto?: porque la clase "__main__.Bar"
no esta definida en el modulo main?
- tengo que resignarme a que no funcione en ipython o hay algun tipo
de workaround?
- es correcto lo que estoy haciendo o hay alguna manera mejor (mas
sencilla, mas estandar, etc)?

Gracias,
Saludos,
Hugo.



More information about the pyar mailing list