デコレータ @classmethod

@classmethodデコレータは、Pythonでクラスメソッドを定義するために使用されるデコレータの一つです。クラスメソッドは、クラス自体に関連付けられたメソッドであり、インスタンス化されたオブジェクトに依存しない操作を実行する際に使用されます。クラスメソッドは、通常、クラス変数やクラス属性にアクセスする際に便利です。

@classmethodデコレータを使用することで、クラスメソッドを明示的に定義できます。以下は、@classmethodデコレータの使用例です:

python
class MyClass: class_variable = "クラス変数" def __init__(self, value): self.instance_variable = value @classmethod def class_method(cls, x): print(f"クラスメソッドが呼ばれました。クラス変数: {cls.class_variable}, 引数: {x}") # クラスメソッドを呼び出す MyClass.class_method(42) # クラスからインスタンスを作成してクラスメソッドを呼び出す obj = MyClass("インスタンス変数") obj.class_method(123)

上記の例では、@classmethodデコレータを使用してclass_methodというクラスメソッドを定義しています。クラスメソッド内で、クラス変数 class_variable にアクセスでき、クラス自体に関連する処理を行うことができます。

クラスメソッドはクラス自体に関連付けられており、インスタンスを作成せずにクラスから直接呼び出すことができます。また、クラスメソッドは self ではなく cls という名前の第一引数を受け取ります。

@classmethodデコレータを使用することで、クラスメソッドをクラス内で定義し、クラス自体に関連する操作を実行できます。