python: 関数をインスタンス変数として呼び出したい_@property
備忘録です。@propertyを使って関数をインスタンス変数として呼び出したい時の備忘録です。
ピンポイントですが、@propertyの使い方です。
関数の前にデコーダーで@propertyをつけておくと、インスタンス変数として呼び出しが可能になります。
例えば、こんな感じでPersonクラスを作ったとします。
クラス内に作った関数generationは年齢を四捨五入してくれます。
その関数の前に@propertyを付けるとこんな感じで呼び出せます。
関数の後に()が入りません。
>>>先生は20代です
@propertyがないと
同じように呼び出すと
>>>先生は<bound method Person.generation of <__main__.Person object at 0x7fec573762b0>>代です
こんな感じで表示されてしまいます。
もちろん呼び出し時に関数に()を付けると
>>>先生は20代です
普通に呼び出せます。