1

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

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. 有什么方法可以隐藏类在请求变量时实际调用函数的事实?

提前致谢。

4

1 回答 1

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

于 2013-05-12T12:30:36.987 回答