我正在嘗試使用靜態列表來創建一個類,它收集對象類的所有新實例。我面臨的問題,似乎只要我嘗試像使用整數一樣使用列表,我不能再使用神奇標記__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!怎麼來的?