Calling a class member function gives TypeError
本问题已经有最佳答案,请猛点这里访问。
我正在使用一个库,该库有一个Python类的以下代码(由我自己编辑,以找到一个最小的工作示例):
1 2 3 4 5 6 7 8 | class Foo(object): def __init__(self): self._bar = 0 @property def Bar(self): return self._bar |
如果我运行以下程序:
1 2 | foo = Foo() x = foo.Bar() |
我收到一条错误消息:
1 | TypeError: 'int' object is not callable |
所以,错误似乎是告诉我它认为
属性将类方法转换为只读属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Foo(object): def __init__(self): self._bar = 0 @property def Bar(self): return self._bar @Bar.setter def Bar(self, value): self._bar = value foo = Foo() print(foo.Bar) # called Bar getter foo.Bar = 10 # called Bar setter print(foo.Bar) # called Bar getter |
它是一种财产!这意味着当您将它作为一个属性获得时,它是返回值,如果您希望它是一个方法,那么就不要将它作为属性。
要使用属性,只需使用