今回は、Pythonの静的メソッド(static method)を定義してみます。
■Python
今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、記事作成時点では「3.7.13」となっています。
■”@staticmethod”デコレーターを使用し静的メソッド(static method)を定義する
では、早速”@staticmethod”デコレーターを使用し静的メソッド(static method)を定義してみます。なお、”@staticmethod”デコレーターは、Python の組み込み関数デコレーター。組み込み関数は、Pythonの仕様に予め用意されている標準で使用できる関数で、デコレーターは、関数のラッパーで、関数の動作を変更・拡張できるものです。
■コード
class human: #クラスの定義 @staticmethod #静的メソッドを定義する def sample_test(x): print('内部静的メソッド', x)
今回はオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。今回はhumanというクラスを定義します。定義後、クラス内にdef文を用いてsample_test()という関数を定義します。括弧内には引数,パラメータとしてxを設定します。定義後、メソッドの定義より前に”@staticmethod”デコレーターを追加します。追加後、この関数が呼び出されたときに実行される処理としてはprint()を用いて日本語の文字列とx内の情報を出力するというものです。
これで静的メソッド(static method)が定義されました。
■検証・実行
定義後、静的メソッド(static method)を呼び出してみます。
■コード
class human: #クラスの定義 @staticmethod def sample_test(x): #クラス内に関数を定義する print('内部静的メソッド', x) human.sample_test(100)
静的メソッド(static method)を呼び出す際は、「ClassName.MethodName()」で呼び出すことができます。今回の場合では「human.sample_test()」となります。コードを記述後、括弧内に引数,パラメータにxに渡す値を渡します。今回は「100」とします。
コードを記述後、保存し実行してみると、静的メソッド(static method)が呼び出されることを確認できました。
■オブジェクトを使用し、静的メソッド(static method)を呼び出す
確認後、オブジェクトを使用しても、静的メソッド(static method)を呼び出すことができますので、やってみます。
■コード
class human: #クラスの定義 @staticmethod #静的メソッドを定義する def sample_test(x): print('内部静的メソッド', x) h_object = human() h_object.sample_test(50)
今回は、h_objectという変数を定義し、その中でオブジェクトを作成するためのテンプレート(設計図)であるクラス、今回の場合は「human()」を格納します。これでオブジェクトを作成するプロセスであるインスタンス化が行われました。
その後、h_objectというオブジェクトに対してドット(.)演算子を用いて、静的メソッドであるsample_test()を呼び出します。括弧内には引数,パラメータとして今回は「50」を渡します。
コードを記述後、保存し実行してみると、オブジェクトを使用し、静的メソッド(static method)を呼び出すことができることを確認できました。
コメント