Python の静的クラス
Hemank Mehtani
2023年1月30日
-
Python で
@staticmethod
デコレータを使用して静的クラスを作成する -
Python で
@classmethod
デコレータを使用して静的クラスを作成する - Python でモジュールファイルを使用して静的クラスを作成する
静的クラスはプログラミングの便利な機能です。静的クラスは継承できず、インスタンス化できません。クラスを静的にする直接的な方法はありません。Python では、メソッドと変数を静的にすることで静的クラスを実装できます。
この記事では、そのようなメソッドを実装します。
Python で@staticmethod
デコレータを使用して静的クラスを作成する
静的クラスを実装するために、そのメソッドと変数を静的にすることができます。このために、@staticmethod
デコレータを使用して、静的クラスにメソッドを作成できます。デコレータは、関数の前に指定される特別な関数であり、関数全体をパラメータとして受け取ります。
例えば、
class abc(object):
@staticmethod
def static_method():
print("Hi,this tutorial is about static class in python")
abc.static_method()
出力:
Hi,this tutorial is about static class in python
このメソッドは、2.6 以降のバージョンの Python でのみ機能することに注意してください。
Python で@classmethod
デコレータを使用して静的クラスを作成する
@classmethod
は、メソッドをそのオブジェクトではなくクラスに対して静的にすることができます。@staticmethod
デコレータに比べていくつかの利点があります。また、サブクラスでも機能し、クラスの状態を変更できます。
ただし、cls
と呼ばれるメソッドに必須の引数を含める必要があります。
次のコードを参照してください。
class abc(object):
@classmethod
def static_method(cls):
print("Hi,this tutorial is about static class in python")
abc.static_method()
出力:
Hi,this tutorial is about static class in python
Python でモジュールファイルを使用して静的クラスを作成する
Python では、静的クラスを実装するためのおそらく最良の方法は、モジュールを作成することです。モジュールをインポートでき、その関数にはモジュール名を使用してアクセスできます。オブジェクトをインスタンス化する必要はなく、継承することもできません。
次の例を参照してください。
def static_method():
print("Hi this is the content of the module file")
上記のコードは、モジュールとしてインポートできる Python スクリプトの単純な関数にすることができます。
たとえば、上記の Python スクリプトの名前が abc.py
の場合、次のように実行できます。
import abc
abc.static_method()
出力:
Hi,this tutorial is about static class in python