类继承:你能解释一下这种行为吗?

时间:2013-06-14 07:54:18

标签: python class inheritance

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

这是一个例子:

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

0 个答案:

没有答案