在Python中获取对象的应用个数是使用sys模块。如下:
In [1]: class Myclass:
...: pass
...:
In [2]: c = MyClass()
------------------------------------------------
NameError Traceb
in ()
----> 1 c = MyClass()
NameError: name 'MyClass' is not defined
In [3]: c = Myclass()
In [4]: import sys
In [5]: sys.getrefcount(c)
Out[5]: 2
In [6]:
当前对象c只有一个变量应用就是他自己,那么输出是2的原因则是在调用sys.getrefcount方法时c当然实参传给了getrefcount方法的形参,此时就多了一个。那么实际的个数就是sys.getrefcount(c)-1