Python 的 weakref 弱引用是什么?什么时候用?
弱引用:不增加对象引用计数,不阻止对象被 GC 回收的引用(强引用会阻止回收)。用法:weakref.ref(obj) 取引用(.call() 获取对象,已回收返回 None);weakref.WeakValueDictionary/WeakKeyDictionary(键或值为弱引用,对象回收自动删除条目);weakref.finalize(对象回收时执行清理回调)。应用:缓存(对象不用时自动清除,避免缓存泄漏)、观察者模式(监听者不阻止被监听对象回收)、循环引用解耦。注意:int/str/tuple 等不可变小对象不支持弱引用。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。