[pyar] Atributo inmortal

Hystrix ego en hystrix.com.ar
Mie Jun 20 18:48:17 ART 2012


2012/6/20 Daniel Moisset <dmoisset en machinalis.com>:
>
> Los modulos son singletons, que se "cargan" (se ejecuta el cuerpo del
> modulo sobre un module object) la primera vez que alguien hace import.
> Los otros import que se hacen despues, simplemente enganchan el nombre
> al module object que ya existia.
>
> "del urllib" simplemente borra el nombre urlllib, pero el modulo sigue
> cargado (en particular, se guarda una referencia en
> sys.modules['urllib'])
>
> Si queres descargar el modulo, creo que borrarlo de sys.modules va a
> hacer que se cargue de vuelta en el siguiente import, pero no estoy
> seguro que pasa si tenes mas referencias, habria que experimentar
>
Si, parece que eso funciona::

    >>> import sys
    >>> del(sys.modules['urllib'])
    >>> import urllib
    >>> urllib.z
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'module' object has no attribute 'z'
    >>>

-- 
Hystrix



More information about the pyar mailing list