地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Python】Property

Pythonのプロパティは、クラスの属性に対して、特定のロジックを組み込んでアクセスや変更を制御するための機能です。通常の属性と異なり、プロパティを使うと、アクセスや代入時に関数を通じて処理を行えるようになります。

プロパティは、@property デコレーターを使って定義します。このデコレーターを使うことで、メソッドを属性のように扱えるようになります。

class Circle:
    def __init__(self, radius):
        self._radius = radius  # プライベートな属性

    @property
    def radius(self):
        # 半径を取得するメソッド
        return self._radius

    @radius.setter
    def radius(self, value):
        # 半径を設定するメソッド
        if value < 0:
            raise ValueError("半径は負の値にできません")
        self._radius = value

    @property
    def area(self):
        # 面積を計算するプロパティ
        return 3.14 * self._radius ** 2