Python/中級/Lesson 12
デコレータ (Decorator)
1時間·theory
このチャプター
4/8
Python
デコレータ (Decorator)
🎯 このlessonを読み終えたら
このlessonを読み終えると、以下の3つを自信を持って実践できます。
- ▸✅ 関数が関数を返す高階関数の原理
- ▸✅
@decorator構文とfunctools.wrapsが必要な理由 - ▸✅
@lru_cache・@property・@staticmethodの活用
学習目標をチェックリストとして、すべて答えられるようになったらlessonを閉じてください。
デコレータ — コード+実行結果
@decorator = 関数をラップして機能を追加。ロギング・キャッシング・認証といった共通処理を分離する。
1. 最もシンプルなデコレータ
@ログ は 足し算 = ログ(足し算) と同じ意味です。
2. 実行時間の計測
3. 引数を受け取るデコレータ
4. よく使う組み込みデコレータ
@property(getter)、@staticmethod、@classmethod もクラスでよく使われます。
一行まとめ
🐍 実行してみよう — デコレータ (Decorator)
上記の概念を実際にコードで動かしてみてください。値を変えながら動作を直接確認するのが最も速い学習方法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒
🤖 AIへの依頼例
このlessonの概念を知っていると、AIに具体的な指示が出せます。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「この関数にfunctools.lru_cacheデコレータを適用して」
- ▸「functools.wrapsを使ってタイミング・ロギングデコレータを作って」
これがトークンを減らす理由
概念を知らないと、AIの回答を受け取っても「それは何ですか?」と再度質問しなければなりません。その「再質問」がトークンを消費します。概念を一度習得しておけば、会話が一度で完結します。
先に読むとよい概念: ジェネレーター
次のおすすめ: with文 — リソースの自動解放