概要

Python@propertyデコレータは、クラス内でゲッターやセッター、デリーターを簡単に定義できる便利な機能です。これにより、メソッドをプロパティとして扱い、より直感的に属性にアクセスできるようになります。

@propertyの基本構文

通常、クラス内のメソッドをプロパティとして定義するには、@propertyデコレータを使用します。

class MyClass:
    def __init__(self, value):
        self._value = value
    
    @property
    def value(self):
        return self._value

これにより、valueメソッドはプロパティとして振る舞い、my_instance.value のように呼び出せます。

セッターとデリーターの定義

プロパティに対してセッターやデリーターを定義する場合、@<プロパティ名>.setter@<プロパティ名>.deleterを使います。

class MyClass:
    def __init__(self, value):
        self._value = value
    
    @property
    def value(self):
        return self._value
    
    @value.setter
    def value(self, new_value):
        self._value = new_value
    @value.deleter
    def value(self):
        del self._value

結論

@propertyデコレータは、クラスのプロパティを管理する際に役立ち、ゲッターやセッターを明確かつ簡潔に記述できます。これにより、コードの可読性が向上し、属性の操作が直感的に行えるようになります。