class A(object):
_all = set()
def __new__(cls):
obj = super(A,cls).__new__(cls)
cls._all.add(obj)
return obj
class B(A):
pass
class C(A):
pass
b = B()
c = C()
这将创建所有实例并将其放入 A._all
。 我想要的是将 C
实例放入 C._all
(和C的类似)。
我可以这样定义 >B
和 C
:
class B(A):
_all = set()
class C(A):
_all = set()
哪个会有效 。 但是, 这感觉就像重复代码, 如果我忘了在下面的子类 < code> A 或 misspell < alll
我可能很难调试错误 时添加 < code> all code > 。
我该如何做好呢?