Python: How to make object attribute refer call a method

前端 未结 4 2083
失恋的感觉
失恋的感觉 2020-12-09 03:53

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?

Edi

4条回答
  •  甜味超标
    2020-12-09 04:56

    Use a property

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

    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
    

提交回复
热议问题