2nd Box

13 Cards

スタティックメソッドデコレータ

☛ Reveal Answer

@staticmethod

クラス内のメソッドを静的メソッドとして定義するために使用される。
静的メソッドはそのクラスのインスタンスに依存しないメソッドで、クラス自体やインスタンスを通じて呼び出すことができる。
静的メソッドはクラスのインスタンス属性や他のメソッドにアクセスする必要がない場合に便利。

特徴

  • インスタンス属性やインスタンスメソッドにアクセスしないメソッドに使用する。
  • クラスのインスタンスを作成せずに、クラス名を通じて直接呼び出すことができる。
  • メソッドの第一引数にselfclsを取りません
# 使用例
class MathUtility:
    @staticmethod
    def add(x, y):
        return x + y

    @staticmethod
    def multiply(x, y):
        return x * y
# クラス名を通じて静的メソッドを呼び出す
result_add = MathUtility.add(5, 3)
result_multiply = MathUtility.multiply(5, 3)

print(result_add)  # 出力: 8
print(result_multiply)  # 出力: 15

いつ使用するか

  • メソッドがクラスのインスタンス属性や他のメソッドにアクセスする必要がない場合。
  • メソッドが汎用的なユーティリティ関数として機能し、クラスの外部からも利用される場合。
  • クラスに関連するが、特定のインスタンスに依存しない操作を行うメソッドを定義する場合。

@staticmethodを使用することで、クラスの設計をより柔軟にし、関数の目的や使用方法を明確にすることができる。