Python 入門コース / 第6章 オブジェクト指向(第40〜46回) / レッスン 42
クラス変数とクラスメソッド
インスタンス変数とクラス変数
self.x はインスタンスごと、クラス直下に書いた変数は全インスタンスで共有されます。定数(税率、上限値)や、全体の集計に使います。
editor.py
注意点が 1 つ。クラス変数にリストや辞書を置くと、全インスタンスで中身を共有します(第 26 回のデフォルト引数と同じ罠)。個別に持ちたいものは必ず __init__ の中で self. に作ってください。
classmethod と staticmethod
@classmethod は第 1 引数にクラス自身(cls)を受け取り、別の作り方(ファクトリ)を用意するのによく使います。@staticmethod は self も cls も受け取らない、ただの関数をクラスの中に置いたものです。
editor.py
使い分けの目安は「インスタンスの値を使う → インスタンスメソッド」「クラス全体に関わる → classmethod」「どちらも使わない → staticmethod(あるいはただの関数)」です。
✅ 理解度チェック
@classmethod の第 1 引数 cls が受け取るものは?