Pythonの勉強を続けています。
今回は
👉 staticmethodとclassmethodの違い を学びました。
どちらもクラスの中で使うメソッドですが、
最初は
「何が違うの?」
とかなり混乱しました。
まずは違いをざっくり
-
staticmethod→ クラスに属する普通の関数 -
classmethod→ クラス自体を操作するメソッド
👉 この違いがポイントです。
staticmethodとは?
@staticmethod
def greet():
return "Hello"
結果👇
特徴👇
-
selfを使わない -
clsも使わない -
クラスの中にある「ただの関数」
classmethodとは?
name = "Taro"
@classmethod
def show_name(cls):
return cls.name
結果👇
特徴👇
-
clsを使う -
クラス変数にアクセスできる
-
クラス全体を操作できる
違いを整理
ここが一番大事👇
-
staticmethod→ クラスに関係ない処理 -
classmethod→ クラスに関係する処理
使い分けのイメージ
staticmethod
👉 計算や処理など
クラスの状態に関係ないもの
classmethod
👉 クラス変数を使う
👉 クラス全体の設定を扱う
今日の気づき
最初は
「どっちも似てる…」
と思いましたが、
👉 クラスに関係あるかどうか
で考えると
一気に理解しやすくなりました。
🎥 動画で見たい方はこちら
VS Codeでの実行画面は
TikTokで解説しています👇
👉 https://www.tiktok.com/@programbenkyo0078
📌 フォローお願いします
このブログでは
Python初心者の学習記録を発信しています🐍
同じようにプログラミングを独学している方、
未経験からエンジニアを目指している方はぜひフォローしてください。
TikTokでも学習発信しています👇
▶ https://www.tiktok.com/@programbenkyo0078
はてなブログ👇
▶ https://xxxx00782.hatenablog.com/
Python初心者の学習記録を発信しています🐍
フォローするとPython学習の流れが全部追えます。
まとめ
✔ staticmethodはクラスに属する関数
✔ classmethodはクラスを操作するメソッド
✔ clsを使うのがclassmethod
✔ 違いは「クラスとの関係性」
クラスの理解が
さらに深まりました🐍🔥