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 に答える