¿Bug en módulo weakref?

Pepe Aracil pepe en diselpro.com
Jue Mar 16 15:01:18 CET 2006


He detectado un comportamiento extraño en el módulo weakref.

Resulta que no puedo hacer que un  weakref apunte a un "bound method" 
directamente, pero si creo una variable que apunto al mismo "bound 
method" entonces funciona...

Ejemplo:

 >>> import weakref
 >>> class C:
...     def method(self):
...             print "Metodo de %s" % self
...
 >>> c=C()
 >>> c.method()
Metodo de <__main__.C instance at 0x402125ac>
 >>> r=weakref.ref(c.method)
 >>> r
<weakref at 0x40211d4c; dead>
 >>> # ¡¡ ¿Dead? !!
 >>> cm=c.method
 >>> r=weakref.ref(cm)
 >>> r
<weakref at 0x40211d24; to 'instancemethod' at 0x401dc9b4 (method)>
 >>> # ¡¡ Ahora si que va !! ¡¡esto es muy raro!!




Más información sobre la lista de distribución Python-es