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

nex*_*doc 5 python cyclic-reference

这是Python的循环引用的示例.

>>> a = [1]
>>> b = [2]
>>> a.append(b)
>>> b.append(a)
Run Code Online (Sandbox Code Playgroud)

在这之后,

>>> sys.getrefcount(a) = 3
>>> sys.getrefcount(b) = 3
Run Code Online (Sandbox Code Playgroud)

为什么ab有3引用计数?

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

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

>>> GNU = ['is not Unix']
>>> GNU.insert(0, GNU)
>>> sys.getrefcount(GNU) = 4
Run Code Online (Sandbox Code Playgroud)

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

提前致谢 :)

Ign*_*ams 4

每个都有 3 个参考:

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