0
我想了解如何在Python中refcounts工作,有人可以解釋爲什麼計數得到打印爲2時,其對象只是1實例? (是不是因爲臨時被傳遞給getrefcount方法?)此外爲什麼當從成員調用時調用的數量多(自基準碰撞引用計數?)Refcount python objects
import sys
class A:
def print_ref_count(self):
print sys.getrefcount(self)
a = A()
print sys.getrefcount(a) # prints 2
a.print_ref_count() # prints 4
print sys.getrefcount(a) # prints 2
注意:有可能得到1的ref值,你只需要創建對象,僅僅是爲了ref計數它的目的(並且對象不能是一個不可變的文字,將被存儲在函數的常量,空的「元組」或不可變的文字的非空元組等)。所以'sys.getrefcount(A())'會讓你1,就像'sys.getrefcount(''。join(('','b','c')))'('join'需要避免字面意思),儘管這兩者都不會很有幫助。 – ShadowRanger