在我的程序中,我有不同的类,它们都继承自同一个类。这些类处理不同类型的操作,它们将操作存储在继承的属性中,然后有时在程序中我推送更改并清空收集操作的属性,因为我当然不想更多地推送相同的操作不止一次。
这里有一个例子:
class A(object):
ops = []
class B(A):
def __init__(self, val):
self.ops.append(val)
class C(A):
def __init__(self, val):
self.ops.append(val)
for j in range(5):
for i in range(10):
b = B(i)
b.ops = []
for i in range(20):
c = C(i)
>>>len(c.ops)
150
>>>len(b.ops)
0
错误在哪里?我希望属性“ops”从运行的最后一个循环中只有 20 个项目
我怎么能以 Pythonic 的方式构造这个问题呢?