为什么我会得到属性错误。它不起作用

2024-06-25 23:13:51 发布

您现在位置:Python中文网/ 问答频道 /正文

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"

Tags: selfifobjectinitdefclassoverprint
1条回答
网友
1楼 · 发布于 2024-06-25 23:13:51

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实例作为第一个参数

相关问题 更多 >