将类变量重定向到类函数

Jul*_*ius 1 python oop

我们以一个简单的类为例:

class Vector:
    def __init__(self):
        self.x = 1
        self.y = 1
        self.z = 1
Run Code Online (Sandbox Code Playgroud)

我想要的是给这个类一个变量,sum这样我就可以这样做

v = Vector()
v.sum
Run Code Online (Sandbox Code Playgroud)

我得到了总和x+y+z(在这种情况下为3).当然,我可以很容易地创建一个类方法来做到这一点,但后来我必须写v.sum()而不是v.sum.有什么方法可以隐藏这个类在请求变量时实际调用函数的事实吗?

提前致谢.

jam*_*lak 10

class Vector(object): # subclass object for new style class

    def __init__(self):
        self.x = 1
        self.y = 1
        self.z = 1

    @property
    def sum(self):
        return self.x + self.y + self.z
Run Code Online (Sandbox Code Playgroud)
>>> v = Vector()
>>> v.sum
3
Run Code Online (Sandbox Code Playgroud)

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