я пытаюсь сохранить некоторые обратные вызовы метода, но обращение к нему будет поддерживать связанный объект, поэтому я попытался сохранить метод weakref to, но это не кажется возможным?
so
Почему я не могу оставить слабого рефери? метод (см. пример ниже)
Как лучше всего сохранить ссылку на метод? что-нибудь в стандартной библиотеке? Или мне придется сохранить функцию и объект ref. отдельный?
пример:
import weakref
class A(object):
def m(self): pass
a = A()
import weakref
class A(object):
def m(self): pass
a = A()
rm = weakref.ref(a.m)
print "is weak ref to method dead?",rm() is None
print "Q1. why can't i keep weakref to bound method?"
ra = weakref.ref(a)
m = a.m
print "delete object"
del a
print "is object dead?",ra() is None
print "delete method"
del m
print "is object dead?",ra() is None
print "Q2. hmmm so i am stuck i can't keep a ref as it stops the object from gc, but weakref to method isn't working?"
callback.remove(method)? - person S.Lott   schedule 04.11.2009withдля обеспечения отключения? - person S.Lott   schedule 04.11.2009