为什么我会得到AttributeError。它不起作用

时间:2013-11-22 00:47:29

标签: python class object python-3.x attributes

class Bil(object):
    def __init__(self, tankVol, aktVol=0):
        self.tankVolym = tankVol
        self.aktuellVolym = aktVol

    def tanka(self, liter=5):
        self.aktuellVolym = self.aktuellVolym + liter
        over = self.aktuellVolym - self.tankVolym
        if over > 0 :
            self.aktuellVolym = self.tankVolym
        else:
            over = 0
        return over

print(Bil.tanka(80))
print(Bil.aktuellVolym)

为什么不起作用?

AttributeError:
    "int" object as no attribute "aktuellVolym"

1 个答案:

答案 0 :(得分:2)

Bil是一个班级。我想你想要一个类的实例

bil_instance = Bil(80)  # Create instance of Bil.
print(bil_instance.tanaka())
print(bil_instance.aktuellVolym)

在这种情况下,您获得AttributeError因为:

Bil.tanka(80)

80作为self参数传递给tanka函数。在python2.x上,你会得到一个不同的错误,说tanka需要一个Bil实例作为第一个参数。