据我所知,Python 3没有对对象的内存何时释放做出任何保证,除非有至少一个非弱引用指向该对象,否则不会释放。
那么语言是否对弱引用做出其他保证呢?特别是,假设我创建了一个弱引用“wr”指向某个对象。后来所有非弱引用都已被销毁,那么在那时,“wr”将会被保证评估为None,还是可能一段时间内仍然评估为原始对象?
除了语言保证外,是否存在与weakref相关的有趣实现行为?
那么语言是否对弱引用做出其他保证呢?特别是,假设我创建了一个弱引用“wr”指向某个对象。后来所有非弱引用都已被销毁,那么在那时,“wr”将会被保证评估为None,还是可能一段时间内仍然评估为原始对象?
除了语言保证外,是否存在与weakref相关的有趣实现行为?
weakref
。 - Karl Knechtel