Python属性getter和setter decorator不可调用

时间:2013-06-28 19:22:30

标签: python

我正在做类似以下的事情

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

我试过用一个和两个强调来修改电压属性名称。

1 个答案:

答案 0 :(得分:8)

getter的重点是它返回值而不被调用。 p.voltage返回整数对象,因此运行p.voltage()等同于100()或其他内容。

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