Python/中級/Lesson 13
with文 — リソースの自動解放
15分·theory
このチャプター
5/8
with文 — リソースの自動解放
🎯 このlessonを読み終えたら
このlessonを読み終えると、以下の3つを自信を持って実践できるようになります。
- ▸✅ with文が__enter__ · __exit__を呼び出す仕組み
- ▸✅ @contextlib.contextmanagerデコレータ
- ▸✅ exit-stackによる複数リソースの管理
学習目標をチェックリストとして手元に置き、すべてに答えられるようになったらlessonを閉じてください。
with文 — コード + 実行結果
with = リソースの自動解放 (ファイルのopen、ロック、DBコネクションなど)。__enter__ / __exit__を実行します。
1. ファイル — 最もよく使われる場面
2. 複数のリソースを同時に扱う
3. 自分で作る — __enter__ / __exit__
4. contextmanagerデコレータ — より簡潔に
一行まとめ
with X() as v: ... — ブロックに入るときenter、出るときexit。ファイル・ロック・トランザクションの標準パターン。
🐍 実際に試してみよう — with文 — 直接実行
上記の概念を実際にコードとして実行してみてください。値を変えながら動作を自分の目で確認するのが、最も効率的な学習方法です。
✏️ Python 코드
📟 コンソール出力
▶ 実行ボタンを押してください
🐍 Pyodideで実際のPythonを実行 — 初回は読み込みに3〜5秒
🤖 AIにこのように依頼してみよう
このlessonの概念を理解すれば、AIに具体的な指示が出せるようになります。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の第一歩です。
- ▸「このPythonコードにwith文 — リソースの自動解放の概念を適用して」
- ▸「このコードにtype hint + pytestのユニットテストを追加して」
- ▸「with文 — リソースの自動解放に関するPEP 8違反を確認して」
なぜトークンが減るのか
概念を知らないままAIの回答を受け取っても、「それはどういう意味ですか?」とまた聞き直す必要があります。その「聞き直し」がトークンを消費します。概念を一度学んでおけば、会話が一度で完結します。
先に読むとよい概念: デコレーター