首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:如何让对象属性引用调用方法

Python:如何让对象属性引用调用方法
EN

Stack Overflow用户
提问于 2010-07-02 22:51:53
回答 4查看 17.3K关注 0票数 22

我希望像object.x这样的属性调用可以返回某个方法的结果,比如object.other.other_method()。我该怎么做呢?

编辑:我很快就问了一下:看起来我可以用

代码语言:javascript
复制
object.__dict__['x']=object.other.other_method()

这是一种可以这样做的方式吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-02 22:55:26

使用属性装饰器

代码语言:javascript
复制
class Test(object): # make sure you inherit from object
    @property
    def x(self):
        return 4

p = Test()
p.x # returns 4

弄乱__dict__是肮脏的,特别是当@property可用的时候。

票数 47
EN

Stack Overflow用户

发布于 2010-07-02 22:53:14

看一下内置的property函数。

票数 11
EN

Stack Overflow用户

发布于 2010-07-02 23:00:17

使用property

http://docs.python.org/library/functions.html#property

代码语言:javascript
复制
class MyClass(object):
    def __init__(self, x):
        self._x = x

    def get_x(self):
        print "in get_x: do something here"
        return self._x

    def set_x(self, x):
        print "in set_x: do something"
        self._x = x

    x = property(get_x, set_x)

if __name__ == '__main__':
    m = MyClass(10)
    # getting x
    print 'm.x is %s' % m.x
    # setting x
    m.x = 5
    # getting new x
    print 'm.x is %s' % m.x
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3166773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档