我在做类似的事情
class Parrot(object):
def __init__(self):
self.__voltage = 100000
@property
def voltage(self):
"""Get the current voltage."""
return self.__voltage
但是它将电压属性视为int,所以当我调用like so时
p = Parrot()
print(p.voltage())
我明白了
TypeError: 'int' object is not callable
我试过用一个和两个下划线来破坏电压属性名称。
最佳答案
getter的关键是它返回值而不被调用。p.voltage
返回整数对象,因此运行p.voltage()
相当于100()
或其他操作。
在某些情况下,您仍然需要调用属性的值,例如该值本身是一个函数。但你不需要它。
关于python - Python属性getter和setter装饰器不可调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17372152/