Python勉強32:Python初心者がつまずく!staticmethodとclassmethodの違い

Pythonの勉強を続けています。

今回は
👉 staticmethodclassmethodの違い を学びました。

どちらもクラスの中で使うメソッドですが、

最初は

「何が違うの?」

とかなり混乱しました。


まずは違いをざっくり

  • staticmethod → クラスに属する普通の関数

  • classmethod → クラス自体を操作するメソッド

👉 この違いがポイントです。


staticmethodとは?

 
class Person:
@staticmethod
def greet():
return "Hello"
 
 
print(Person.greet())
 

結果👇

 
Hello
 

特徴👇

  • selfを使わない

  • clsも使わない

  • クラスの中にある「ただの関数」


classmethodとは?

 
class Person:
name = "Taro"

@classmethod
def show_name(cls):
return cls.name
 
 
print(Person.show_name())
 

結果👇

 
Taro
 

特徴👇

  • 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
✔ 違いは「クラスとの関係性」

クラスの理解が
さらに深まりました🐍🔥