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