【问题标题】:Why do I get AttributeError. Its not working为什么我会得到 AttributeError。它不工作
【发布时间】:2013-11-22 00:47:29
【问题描述】:
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"

【问题讨论】:

  • Bil 是一个类。您将需要该类的一个实例 -> foobar = Bil(20)。然后你就可以使用 foobar.aktuellVolym。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 2017-11-18
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多