Python3 weakref — 实现对象的弱引用
import weakref
class MyClass:
def __init__(self):
self.value = 10
def __del__(self):
print("MyClass instance being deleted")
# 创建一个MyClass实例
my_instance = MyClass()
# 创建一个弱引用到my_instance
weak_ref = weakref.ref(my_instance)
# 获取弱引用所引用的对象
print(weak_ref()) # 输出: <__main__.MyClass object at 0x0000023E2E390748>
# 释放my_instance的强引用
del my_instance
# 尝试再次获取弱引用所引用的对象
print(weak_ref()) # 输出: None,因为MyClass实例已经被删除
这段代码演示了如何在Python中使用weakref
模块创建对象的弱引用。当最后一个对象的强引用被删除后,该对象会被垃圾收集器回收,并触发__del__
方法的调用。通过弱引用,我们可以在对象被回收之后访问它,但是注意这时候会得到None
。
评论已关闭