こんにちは。
本日はPythonメモです。
本記事では、Pythonのプロパティの使用について記載します。
ゲッターメソッド、セッターメソッドの定義
ゲッターメソッド、セッターメソッドを定義し、
property()
を使用して2つのメソッドを定義します。
property()の第一引数にゲッターメソッド、
第二引数にセッターメソッドを定義します。
class MyItem(): def __init__(self, n): self.__name = n def get_name(self): print('[do get_name]') return self.__name def set_name(self, n): self.__name = n print('[do set_name] ' + self.__name) name = property(get_name, set_name) m = MyItem('Bob') print(m.name) m.name = 'Bob2'
実行結果は以下です。
[do get_name] Bob [do set_name] Bob2
nameプロパティを参照していますが、
実際には、get_name、set_nameメソッドが呼び出されています。
デコレータを使用した定義
デコレータを使用して、プロパティを定義することもできます。
ゲッターメソッドには@property
を指定し、
セッターメソッドには@プロパティ名.setter
を指定します。
class MyItem(): def __init__(self, n): self.__name = n @property def name(self): print('[getter]') return self.__name @name.setter def name(self, n): self.__name = n print('[setter] ' + self.__name) m = MyItem('Bob') print(m.name) m.name = 'Bob2'
実行結果は以下です。
[getter] Bob [setter] Bob2
以上です。