Python property() ビルトイン関数

Python 3 ドキュメントより

プロパティ属性を返します。

Introduction

property() 関数は、プロパティ属性を作成するために使用されます。プロパティ属性とは、getter、setter、および delete メソッドを持つ特殊な種類の属性です。これにより、属性の値の取得、設定、または削除にロジックを追加できます。

property() を使用するより一般的な方法は、@property デコレータを使用することです。これは property() を使用するより便利な方法です。

Example

property() を使用して読み取り専用属性を作成する例を次に示します。

class Person:
    def __init__(self, name):
        self._name = name

    def get_name(self):
        print("Getting name")
        return self._name

    # プロパティを作成
    name = property(get_name)

p = Person("John")
print(p.name)  # これは get_name() を呼び出します
Getting name
John

注:セッターがないため、p.name = "Jane" は AttributeError を発生させます。

そして、@property デコレータを使用した、より一般的な方法は次のとおりです。

class Person:
    def __init__(self, name):
        self._name = name

    @property
    def name(self):
        print("Getting name")
        return self._name

p = Person("John")
print(p.name)
Getting name
John