python - 将类变量重定向到类函数

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

提前致谢。

最佳答案

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

关于python - 将类变量重定向到类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16507348/

相关文章:

javascript - 为什么 JavaScript 中这些基于闭包的私有(private)变量不起作用

python - 将一列列表拆分为不同的列时出错

c# - 多个包装器 - 如何做?

java - 枚举与枚举的区别

python - 求和 : Is recursion necessary, 以及递归算法是什么样的?

c++ - 表示具有 "multiple-combined"键的查找表的数据结构

python - 从Python中的静态方法调用非静态方法

python - 在 Python 中表示集合中多个等效键的数据结构?

python - 匹配多个正则表达式组并删除它们

python - 当 scoring = 'r2_score' 时,sklearn 的 RidgeCV 的 cv.values 意味着什么?