引用循环仅表示一个或多个对象相互引用,因此,如果您在纸上用表示依赖性的箭头将其绘制出来,则会看到一个循环。
(几乎)最简单的参考周期是有两个对象
a,
b它们相互引用:
a.other = bb.some_attr = a
幼稚的垃圾收集器严格地根据一个对象是否被另一个对象引用而工作。在这种情况下,如果
a和
b都没有被其他任何东西引用,则它们仍然相互引用,并且天真的垃圾回收器可能不会回收内存。(不过,我不知道Python是否可以被参考周期困住。)
编辑:最简单的引用周期是引用自己的对象:
a = []a.append(a)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)