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論理的には違いません。ただ「帰属」が違うだけです。静的メソッドはクラスを経由してアクセスしクラスロジックに関連し、普通の関数はモジュールの名前空間にあります。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%