5

这是 Python 循环引用的示例。

>>> a = [1]
>>> b = [2]
>>> a.append(b)
>>> b.append(a)

在这之后,

>>> sys.getrefcount(a) = 3
>>> sys.getrefcount(b) = 3

为什么引用计数为 3 ab

对不起,伙计们,我只是弄错了。

真正的问题是不同的。

>>> GNU = ['is not Unix']
>>> GNU.insert(0, GNU)
>>> sys.getrefcount(GNU) = 4

为什么 'GNU' 的引用计数是 4 ?

提前致谢 :)

4

1 回答 1

4

每个有3个参考:

  1. 在对方的列表中的第一个元素。
  2. 作为sys.getrefcount().
  3. 当前范围,即绑定到aand b
于 2013-06-26T01:53:40.857 回答