¿Por qué no funciona el débilref en este método encuadernado?
Tengo un proyecto en el que estoy tratando de usar débiles con devoluciones de llamada, y no entiendo lo que estoy haciendo mal. He creado una prueba simplificada que muestra el comportamiento exacto con el que estoy confundido.
¿Por qué en esta prueba test_a funciona como se esperaba, pero el punto débil para self.MyCallbackB desaparece entre la inicialización de la clase y la llamada test_b? Pensé que mientras exista la instancia (a), la referencia a self.MyCallbackB debería existir, pero no existe.
import weakref
class A(object):
def __init__(self):
def MyCallbackA():
print 'MyCallbackA'
self.MyCallbackA = MyCallbackA
self._testA = weakref.proxy(self.MyCallbackA)
self._testB = weakref.proxy(self.MyCallbackB)
def MyCallbackB(self):
print 'MyCallbackB'
def test_a(self):
self._testA()
def test_b(self):
self._testB()
if __name__ == '__main__':
a = A()
a.test_a()
a.test_b()