weakref 待解决.

 

 

暂时不知为何在控制台多执行一次b()后,del a就不会立即销毁Foo实例.

 

>>> class Foo(object):
    def __init__(self):
        self.obj = None
        print ('created')
 
    def __del__(self):
        print ('destroyed')
 
    def show(self):
        print (self.obj)
 
    def store(self, obj):
        self.obj = obj

>>> import weakref
>>> a = Foo()
created
>>> b = weakref.ref(a)>>> del a
destroyed

>>> a = Foo()
created
>>> b = weakref.ref(a)
>>> b()
<__main__.Foo object at 0x0000000002B025F8>
>>> del a

 

posted @ 2014-04-20 20:52  LisPythoniC  阅读(127)  评论(0编辑  收藏  举报