这里是一个Python循环引用的例子。
>>> a = [1]
>>> b = [2]
>>> a.append(b)
>>> b.append(a)
在此之后,
>>> sys.getrefcount(a) = 3
>>> sys.getrefcount(b) = 3
为什么 a
和 b
的引用计数为 3??
对不起大家,我刚才弄错了。
真正的问题是不同的。
>>> GNU = ['is not Unix']
>>> GNU.insert(0, GNU)
>>> sys.getrefcount(GNU) = 4
为什么 'GNU' 的引用计数是 4 ?
提前致谢:)
最佳答案
每个都有 3 个引用:
- 在第一个元素的其他列表中。
- 作为
sys.getrefcount()
的参数。 - 当前范围,即绑定(bind)到
a
和b
。
关于python - 在 Python 中,循环引用的引用计数是多少,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310316/