在Python中,循环引用的引用计数是什么?为什么?

时间:2013-06-26 01:49:40

标签: python cyclic-reference

以下是Python的循环引用示例。

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

之后,

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

为什么ab的引用计数为3?

对不起,伙计们我犯了一个错误。

真正的问题是不同的问题。

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

为什么“GNU”的引用计数为4?

提前致谢:)

1 个答案:

答案 0 :(得分:4)

每个都有3个引用:

  1. 在第一个元素的另一个列表中。
  2. 作为sys.getrefcount()的论据。
  3. 当前范围,即绑定到ab