__init__中定义的变量不读

时间:2015-04-01 22:06:05

标签: python

我所理解的是在 init 魔术方法中定义变量。我做了,但下一个方法是不读它。

任何帮助?

class Foo:

    var = 9

    def __init__(self, a, b):
        self.i = a
        self.j = b

    def add(self, a, b):
        print a+b

bar = Foo(5, 5)  # create object

print bar.var  # access class variable

O / P:

9

为什么不打印

10

9

2 个答案:

答案 0 :(得分:3)

您调用了变量self.iself.j,而不是ab,因此您需要引用它们。 add()应该像这样定义:

def add(self):
    print self.i+self.j

答案 1 :(得分:3)

如果要在add内运行代码,则必须调用它。

bar = Foo(5, 5)  # create object
bar.add(5,5)
print bar.var  # access class variable