将类变量重定向到类函数

时间:2013-05-12 12:29:22

标签: python oop

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

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

我想要的是给这个类一个名为sum的变量,这样当我做

v = Vector()
v.sum

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

提前致谢。

1 个答案:

答案 0 :(得分: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

>>> v = Vector()
>>> v.sum
3

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