python中的奇怪行为

时间:2014-06-01 11:27:25

标签: python class oop

我在list类中使用Python个对象观察到一种奇怪的行为。

class Test:
    val = []

    def __init__(self):
        self.val.append(42)

a = Test()
b = Test()
print b.val

上述计划的输出为[42,42],而不是预期的[42]

class Test:
    val = 0

    def __init__(self):
        self.val+=5

a = Test()
b = Test()
print b.val

在这种情况下,输出为预期的5

按照上面的规则显示,该程序应该给出输出10。反之亦然,上述输出应仅为[42]

如果实例化了多个相同类型的对象,那么list类型对象在不同对象中是如何访问的?这完全违背了我的OOP概念。

0 个答案:

没有答案