2

我正在做类似于以下的事情

class Parrot(object):
    def __init__(self):
        self.__voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self.__voltage

然而,它将电压属性视为一个 int,所以当我这样调用时

p = Parrot()
print(p.voltage())

我明白了

TypeError: 'int' object is not callable

我试过用一个和两个下划线来破坏电压属性名称。

4

1 回答 1

9

getter 的重点是它在不被调用的情况下返回值。 p.voltage返回整数对象,所以运行p.voltage()等价于100()或某事。

仍然可能存在您想要调用属性值的情况,例如该值本身就是一个函数。但是你在这里不需要它。

于 2013-06-28T19:24:29.363 回答