class Foo:
def __init__(self):
pass
@property
def get_features(self):
return (1,2,3,)
def execute(self):
print self.get_features()
f = Foo()
f.execute()
我明白了:
TypeError: 'tuple' object is not callable
我感兴趣的实际上是那个元组的长度。
答案 0 :(得分:2)
你不应该叫属性。相反,您可以像普通属性一样访问它们:
def execute(self):
print self.get_features
属性和属性之间的唯一区别是属性具有getter和setter函数,当您访问或设置它们的值时,这些函数将被隐式调用 。有关详细信息,请参阅documentation for property
。
此外,您的课程应该继承自object
:
class Foo(object):
您应该始终在Python 2.x中执行此操作,以便您的类成为new-style class,其功能远远超过旧式。
答案 1 :(得分:1)
原因是你的get_features()函数上有@property装饰器,使它成为属性,因此它不可调用。
这意味着execute()只需要打印属性,而不是将其称为函数