staticmethod() 静的メソッドデコレータ
最終更新:2026-09-22
staticmethod() 静的メソッドデコレータ
@staticmethod はメソッドを静的メソッドとしてマークします:self や cls を受け取りません。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
@staticmethod
def func(...):
⚙️ 引数
| func 必須 | The function (callable) to wrap as a static method. |
|---|
戻り値:A static method descriptor; called without self or cls.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
7
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qstaticmethod と classmethod の違いは?
Astaticmethod は特別な引数を受け取らず、普通の関数とまったく同じです。classmethod は最初の引数に cls(クラス自身)を受け取り、クラス属性にアクセスできます。
Qインスタンスから静的メソッドを呼べますか?
A呼べます。C().add(1, 2) も C.add(1, 2) も同じ引数で動作し、インスタンスメソッドのように self が自動で渡されることはありません。
Qモジュールレベル関数を使わず staticmethod にするのはなぜ?
Aクラスのロジックに関連するヘルパー関数をクラスの名前空間にまとめることで整理しやすくなり、さらにサブクラスで継承・オーバーライドもできます。
Q@staticmethod を付けた関数は普通の関数と振る舞いが違いますか?
A論理的には違いません。ただ「帰属」が違うだけです。静的メソッドはクラスを経由してアクセスしクラスロジックに関連し、普通の関数はモジュールの名前空間にあります。