18

重複の可能性:
Pythonでプロパティ機能を使用する方法に関する実際の例?

@property次のコードで見たデコレータについて質問があります。誰かが@propertyデコレータを使用する理由を完全に説明できるほど親切でしょうか?私@propertyは同等であることを知っisActive = property(isActive)ていますが、メソッドプロパティは実際にそのパラメータに何をしますか?isActiveクラスからメソッドを呼び出すと、InputCell実際にはどうなりますか?前もって感謝します。

class InputCell(object):
    def __init__(self, ix, iy, inputData):
        self.ix = ix
        self.iy = iy
        self.InputData = inputData

    @property
    def isActive(self):
        return self.InputData[self.ix][self.iy]
4

1 に答える 1

24

それは単に構文糖衣です。これにより、メソッド呼び出しを変数アクセスまたは割り当てのように見せることができます。

これが役立つ1つの方法は、以前単純な変数であったものを、他のコードで実際に計算または検証されたものに変更する場合です。プロパティにすると、既存のコードを壊すことなくこれを行うことができます。もう1つの方法は、オブジェクト属性のキャッシュ、遅延初期化などです。

于 2012-07-16T23:16:22.287 に答える