Pythonには、クラスメソッドとスタティックメソッドという2種類のメソッドが存在します。これらのメソッドは、それぞれ異なる目的で使用されます。

スタティックメソッド

スタティックメソッドは、クラス内で定義された静的なメソッドです。つまり、スタティックメソッドは、クラスに関連する処理を実行するために使用されますが、特定のインスタンスには関連付けられていません。したがって、スタティックメソッドはインスタンス変数やインスタンスメソッドにアクセスすることができません。

スタティックメソッドは、次のように@staticmethodデコレータを使用して、メソッドを定義することができます。

class MyClass:
    @staticmethod
    def my_static_method(arg1, arg2):
        # ここにスタティックメソッドの処理を記述する

上記の例では、my_static_methodはスタティックメソッドであり、arg1arg2の2つの引数を受け取ります。

クラスメソッド

クラスメソッドは、クラスに関連する処理を実行するために使用されますが、インスタンスには関連付けられていません。クラスメソッドは、クラス自体を引数として受け取ります。

クラスメソッドは、次のように@classmethodデコレータを使用して、メソッドを定義することができます。

class MyClass:
    @classmethod
    def my_class_method(cls, arg1, arg2):
        # ここにクラスメソッドの処理を記述する

上記の例では、my_class_methodはクラスメソッドであり、clsという名前のクラス自体を引数として受け取ります。arg1arg2の2つの引数も受け取ります。