Python/オブジェクト指向/Lesson 18
クラスの継承
45分·theory
このチャプター
2/3
Python
クラスの継承
🎯 このレッスンを読み終えたら
このレッスンを読み終えると、以下の3つを自信を持ってできるようになります。
- ▸✅ 単一継承 vs 多重継承 + MRO (Method Resolution Order)
- ▸✅ super() を使うべきタイミング
- ▸✅ 抽象クラス (abc.ABC + @abstractmethod)
これらの学習目標をチェックリストとして手元に置き、すべて答えられるようになったらレッスンを閉じてください。
継承 — コード + 実行結果
class 子クラス(親クラス): = 親の属性・メソッドをそのまま引き継ぎ + 子が追加・再定義する。
💡 重要ポイント
1. class Child(Parent): の形式で継承する
2. super() で親のメソッドを呼び出す
3. isinstance()、issubclass() で関係を確認する
PythonのOOPはクラス (class) でオブジェクトを定義します。__init__ はコンストラクタ、self はインスタンスへの参照です。継承は class Child(Parent): で実装し、super() で親のメソッドを呼び出します。@property でgetter/setterを実装し、@classmethod/@staticmethod でクラスメソッドや静的メソッドを定義します。多重継承とMRO (Method Resolution Order) もサポートされています。
🐍 試してみよう — クラスの継承
上記の概念を実際にコードとして実行してみましょう。値を変えながら動作を直接確認するのが、最も速い学習方法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒
🤖 AIにこう頼んでみよう
このレッスンの概念を理解すれば、AIに具体的な指示が出せるようになります。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の第一歩です。
- ▸「このdict型のデータ構造をdataclassに書き換えて」
- ▸「このクラスに__repr__と__eq__を適切に追加して」
なぜこれがトークンを減らすのか
概念を知らないと、AIの回答を受け取っても「それって何ですか?」とまた聞き直す羽目になります。その「聞き直し」こそがトークンを消費します。概念を一度理解しておけば、会話が一度で完結します。
先に読むとよい概念: クラスの基礎