del obj
print('r():', r())
当引用已经“死亡”而且不再引用原对象时,这个回调会接受这个引用对象作为参
数。这个特性的一种用法就是从缓存中删除弱引用对象。
1.3 最终化对象
清理弱引用时要对资源完成更健壮的管理,可以使用 finalize 将回调与对象关联。
finalize 实例会一直保留(直到所关联的对象被删除) ,即使应用并没有保留最终
化对象的引用。
import weakref
class ExpensiveObject:
def __del__(self):
print('(Deleting {})'.format(self))
def on_finalize(*args):
print('on_finalize({!r})'.format(args))
obj = ExpensiveObject()
weakref.finalize(obj, on_finalize, 'extra argument')
评论0
最新资源