14章実行のカスタマイズ

Pythonでは、内部のメカニズムの多くが公開され、サポートされ、文書化されており、Pythonを詳細に理解するのに役立つ可能性がある。また、そうしたPythonのメカニズムに独自のコードを接続し、ある程度制御するのにも役立つ。たとえば7.1.1.3項では、Pythonがどのようにして組み込みオブジェクトを可視化するのかについて説明した。Pythonには、サイトのカスタマイズ、終了関数、動的実行、内部型の処理、ガベージコレクションなど、高度なテクニックが他にもある。本章では、そうした高度なテクニックを紹介する。複数のスレッドやプロセスを使った実行制御に関連する他の問題については、15章で詳しく見ていく。テスト、デバッグ、プロファイリングに特有の問題については、17章で取り上げる。

14.1 サイトごとのカスタマイズ

Pythonでは、各実行を開始するときにPythonの振る舞いの一部をサイトごとにカスタマイズできる特別な「フック」を提供している。Pythonはメインスクリプトの直前に標準モジュールsiteをロードする。-Sオプションを使ってPythonを実行する場合、このモジュールはロードされない。このオプションを使うと起動が高速になるが、初期化をメインスクリプトで行わなければならないという代償が伴う。siteの目的は、何よりもまず、環境変数や仮想環境によって指定される内容や、sys.pathのディレクトリに含まれている各.pthファイルの内容に基づいて、sys.pathを標準形式にすることにある(重複のない絶対パスにする)。

次に、開始しているセッションが対話形式である場合、siteは便利な組み込み機能(exitcopyrightなど)をいくつか追加する。 ...

Get Pythonクイックリファレンス 第4版 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.