デコレーター @classmethod
@classmethodデコレータは、Pythonのクラス内でクラスメソッドを定義するために使用されます。クラスメソッドは、クラス自体に関連する操作を実行するために使用され、通常、クラスレベルの情報にアクセスできますが、インスタンスレベルの情報にはアクセスできません。クラスメソッドは、インスタンスを作成せずにクラス自体にアクセスできるため、ファクトリメソッドや共通のユーティリティメソッドとして有用です。以下は、@classmethodデコレータの基本的な使い方です:
python
class MyClass: class_variable = 0 def __init__(self, value): self.value = value @classmethod def increment_class_variable(cls): cls.class_variable += 1 @classmethod def get_class_variable(cls): return cls.class_variable # クラスメソッドを呼び出す MyClass.increment_class_variable() print(MyClass.get_class_variable()) # 1 を出力 # クラスのインスタンスを作成 obj1 = MyClass(42) obj2 = MyClass(100) # クラスメソッドはインスタンスからも呼び出せるが、クラスの状態に影響を与える obj1.increment_class_variable() print(obj2.get_class_variable()) # 2 を出力
上記の例では、@classmethodデコレータがincrement_class_variableとget_class_variableメソッドの上に配置されています。これにより、これらのメソッドはクラスメソッドとして定義され、クラス自体に関連付けられます。クラスメソッド内では、clsパラメータを介してクラス自体にアクセスできます。
クラスメソッドは、クラスのインスタンスを生成せずにクラス自体に対して操作を実行したい場合や、クラスに関連する共通の操作を提供するために使用されます。

ディスカッション
コメント一覧
まだ、コメントがありません