1

在我的程序中,我有不同的类,它们都继承自同一个类。这些类处理不同类型的操作,它们将操作存储在继承的属性中,然后有时在程序中我推送更改并清空收集操作的属性,因为我当然不想更多地推送相同的操作不止一次。

这里有一个例子:

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 的方式构造这个问题呢?

4

0 回答 0