Python:如何使对象属性引用调用方法
问题描述
我想要一个像 object.x
这样的属性调用来返回某个方法的结果,比如 object.other.other_method()
.我该怎么做?
I'd like for an attribute call like object.x
to return the results of some method, say object.other.other_method()
. How can I do this?
我很快问了一点:看起来我可以用
I asked a bit soon: it looks like I can do this with
object.__dict__['x']=object.other.other_method()
这是一种可行的方法吗?
Is this an OK way to do this?
解决方案
使用属性装饰器
class Test(object): # make sure you inherit from object
@property
def x(self):
return 4
p = Test()
p.x # returns 4
使用 __dict__ 很脏,尤其是当 @property 可用时.
Mucking with the __dict__ is dirty, especially when @property is available.
相关文章