8章頑健性と性能

有用なPythonプログラムを書いたなら、次のステップは、本番運用できる頑健なコードにすることです。プログラムを想定外の環境でも信頼できるようにすることは、正しい機能を備えることと同じように重要です。Pythonには、さまざまな状況下でもプログラムが頑健になるようにするのを手助けする組み込みの機能やモジュールがあります。

頑健さの1つの側面が、スケーラビリティと性能です。膨大なデータ量を扱うPythonプログラムを実装する場合、コードのアルゴリズム計算量に由来する速度低下や他の種類の計算上のオーバーヘッドに出会うことがあります。幸い、Pythonには最小限の努力で高性能を達成するのに必要なアルゴリズムとデータ構造が用意されています。

項目65 try/except/else/finallyの各ブロックを活用する

Pythonで例外処理をしているときには、4種類の異なる場合があります。それらは、機能的には、try, except, else, finallyの各ブロックで取り扱えます。それぞれのブロックが、複合文の中で独特の目的を果たし、役に立つようにさまざまに組み合わせられます(他の例としては「項目87 APIからの呼び出し元を分離するために、ルート例外を定義する」参照)。

finallyブロック

例外を上に(呼び出し元に)伝えたいときにはtry/finallyを使いますが、例外発生時にも後始末処理を実行したいことがあります。よく使うtry/finallyの場面の1つが、ファイルハンドルを確実に閉じることです(別の、おそらくより良いやり方としては、「項目66 contextlibとwith文をtry/finallyの代わりに考える」参照)。

def try_finally_example(filename): ...

Get Effective Python 第2版 ―Pythonプログラムを改良する90項目 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.