Python の @property はクラスのインスタンスメソッドを変数のようにする
2023.02.18
クラスのインスタンスメソッドに @property
をつけると変数のようにアクセスできます。
class User:
def __init__(self, name, age):
self.id = 0
self._name = name
self._age = age
@property
def hello(self):
return self._name
a = User(name='Alice', age=27)
print(a.hello) # Alice
a
は関数 hello
に変数のようにアクセスし、a.hello()
でなく a.hello
となっています。PyCharm で a
を入力すると
のように id
と hello
がアクセス可能になっています。_name
と _age
はアンダーバーから始まっているため候補に出てこない。