Python @property
在一次调用sleekxmpp库的时候,遇到一个问题,就是想获取一个很简单的jid,结果在调用一个方法的时候,不让我加括号,否则报错:“'unicode'objectisnot callable
”一下子世界观凌乱了,后来才知道原来是@property的原因:
class Person: def __init__(self): print ("init....") self.aaa = 6 @property def aa(self): return self.aaa @aa.setter def aa(self,value): self.aa = value if __name__ == '__main__': p = Person() print p.aa p.aa = 5 print p.aa
以上代码如果误写为p.aa()同样会报错:“'int' object is not callable”
备注:小笔python版本为2.73 其他版本暂时未测。