以下是Python的循環引用的示例。在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?
感謝提前:)
我無法複製你的最後一個例子。 – BrenBarn
我現在在使用2.7.5版本。它適用於我的程序。 – nextdoordoc
仍然無法重現您更新的問題。 'from sys import getrefcount as r; g = [0]; r(g); g.insert(0,g); r(g)'→2,3;無論如何,嘗試在插入之前在*和*之前檢查refcount *。也許你不明白的不是你認爲你不明白的東西。 – kojiro