Python の静的クラス

Hemank Mehtani 2023年1月30日
  1. Python で@staticmethod デコレータを使用して静的クラスを作成する
  2. Python で@classmethod デコレータを使用して静的クラスを作成する
  3. Python でモジュールファイルを使用して静的クラスを作成する
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

関連記事 - Python Class