我们以一个简单的类为例:
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
。有没有办法隐藏类在实际请求变量时实际调用函数的事实?
提前致谢。
答案 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