property() 関数用のPythonの”@property”組み込みデコレーターについて解説しています。
@property デコレータは、property() 関数に対するPythonの組み込みのデコレータです。デコレータとは、構造を変更せずに既存のオブジェクトに新しい機能を追加できる機能で、クラス内の任意のメソッドで @property デコレータを使用すると、その関数(メソッド)をプロパティとして使用できます。プロパティは属性(共通して備わる性質や特徴)、または詳細なデータという認識である。
なお、デコレータは通常、装飾したい関数の定義の前に呼び出されます。
■Python
Google Colaboratory(Google Colab)。Google Colaboratoryでは、今回Python 3.7.13が用いられる。
■@property デコレータを使用し、関数(メソッド)をプロパティとして宣言する
では、実際に@property デコレータを使用し、関数(メソッド)をプロパティとして宣言してみます。
■コード
class fruits: def __init__(self,name): self.__name = name @property def fruits_name(self): return self.__name
fruits(フルーツ)というクラス(設計図)という定義します。定義後、コンストラクター(Constructor)を定義するために、def文と特別な名前である「__init__()」を記述します。さらに括弧内には、特別な引数,パラメーターであるself(自己)とnameという引数,パラメータを記述します。記述後、self(自己)に対して、ドット(.)演算子を用いて、__nameという値を”=(イコール)”を用いてname変数の値を代入する状態にしておきます。
次にdef文でfruits_nameという関数(メソッド)を定義し、括弧内に引数,パラメータとしてself(自己)を設定します。この関数が呼び出された時に実行される処理としてはreturnとして、__nameの値を返すというものです。この定義した関数(メソッド)の前に、@property デコレータを用います。これで関数(メソッド)をプロパティとして宣言することができます。
■プロパティとして宣言した関数(メソッド)にアクセスする
宣言後、プロパティとして宣言した関数(メソッド)にアクセスしてみます。
■コード
f_object = fruits('りんご') f_object.fruits_name
今回はf_objectという変数を定義し、その中でfruits()を用いて、オブジェクトを作成するプロセスである「インスタンス化」を行います。その際に、括弧内にプロパティとして宣言した関数(メソッド)にセットする値を括弧内に引数,パラメータとして渡します。今回は「りんご」とします。
これで値がセットされましたので、作成したオブジェクトに対してドット(.)演算子を用いてfruits_nameという関数(メソッド)にアクセスしてみます。
アクセスしてみると、@property デコレータを用いてfruits_nameという関数(メソッド)をプロパティとして宣言されていますので、プロパティとしてアクセスすることができ、詳細なデータを確認することができました。
コメント