October 2017
Intermediate to advanced
832 pages
13h 34m
Japanese
コンテキストマネージャはサブルーチンそのものと同じくらい重要になるかもしれません。わたしたちは、これについてはまだ表面しか触れていません。(中略)BASICには
with文があり、多くの言語にもwith文があります。しかし、どれも機能的には異なりますし、やれることはとても浅いものです。ドットを連発しながら(属性を)参照しなくても済むようにするだけで、設定や終了処理はしません。名前が同じだというだけで、同じものと判断しないでください。with文は非常に重要です。——Raymond Hettinger雄弁なPythonの伝道者PyCon US 2013のキーノート「What Makes Python Awesome」より[15-01]†1
[†1] with文のくだりはビデオの23:00~26:15の間に登場します。
本章では制御フロー機能を説明します。ここで取り上げる機能は他の言語ではあまり一般的ではないため、Pythonでも見過ごされたり、あまり活用されなかったりする傾向があります。具体的には次の機能です。
with文とコンテキストマネージャfor、while、try文で使うelsewith文はコンテキストマネージャオブジェクトの制御下で、一時的なコンテキストを設定し、確実に終了処理をします。これによりエラーを防止し、テンプレートそのままなコードを減らし、同時にAPIを安全かつ簡単に使えるようにします。Pythonプログラマはファイルを自動的に閉じるという目的にとどまらず、より広い適用範囲を見出しています。
elseとwithはお互いまったく関係ないのですが、もう第Ⅴ部に入っており、他にelseを説明する場所もなければ1ページだけの章を起こしたくはないので、ここで説明させてもらいます。 ...
Read now
Unlock full access