我正在尝试使用静态列表来创建一个类,它收集对象类的所有新实例。我面临的问题,似乎只要我尝试像使用整数一样使用列表,我不能再使用神奇标记__del__
。Python静态变量列表__del__
我的例子:
class MyClass(object):
count = 0
#instances = []
def __init__(self, a, b):
self.a = a
self.b = b
MyClass.count += 1
#MyClass.instances.append(self)
def __str__(self):
return self.__repr__()
def __repr__(self):
return "a: " + str(self.a) + ", b: " + str(self.b)
def __del__(self):
MyClass.count -= 1
#MyClass.instances.remove(self)
A = MyClass(1,'abc')
B = MyClass(2,'def')
print MyClass.count
del B
print MyClass.count
有了意见,我得到正确的答案:
2
1
但没有注释 - 现在包括静态对象列表MyClass.instances我得到错误的答案:
2
2
看起来像MyClass无法达到它的__del__
方法a nymore!怎么来的?