Python プロパティについて
入門Python3という書籍でPythonを学習中の初心者です。
現在、プロパティについて学んでいるのですが
組み込み関数のproperty()の挙動がよく分かりません。
次のソースコードでpropertyがどのように動いているかを
詳しく教えていただけると有難いです。
class Duck():
def __init__(self, input_name):
self.hidden_name = input_name
def get_name(self):
print('inside the getter')
return print(self.hidden_name)
def set_name(self, input_name):
print('inside the setter')
self.hidden_name = input_name
name = property(get_name, set_name)
fowl = Duck('Howard')
fowl.name
fowl.name = 'Daffy'
fowl.name
なお、ソースコードは同書から引用しています。
nameに何も代入されていなければ第一引数の関数が、
何かが代入されていたら第二引数の関数が実行されると
考えましたが、腑に落ちません。
簡単な例としてpropertyを用いた、他のソースコードを
元に説明して頂けると幸いです。