我们以一个简单的类为例:
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