我正在尝试使用静态列表创建一个类,该列表收集对象类的所有新实例。我面临的问题似乎是,一旦我尝试以与整数相同的方式使用列表,我就不能再使用魔术标记__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__
方法了!怎么来的?