7章モジュールとパッケージ

一般的なPythonプログラムは複数のソースファイルで構成されている。ソースファイルはそれぞれコードとデータを再利用するためにまとめられたモジュール(module)である。通常、モジュールは互いに独立しているため、他のプログラムで必要なモジュールを再利用できる。場合によっては、複雑さに対処するために、関連するモジュールを1つのパッケージ(package)にまとめることがある。パッケージとは、関連するモジュールとサブパッケージからなる階層的なツリー構造のことである。

モジュールが別のモジュールに依存する場合は、import文またはfrom文を使ってそのことを明示的に指定する。プログラミング言語によっては、グローバル変数がモジュールとモジュールを結ぶ秘密のパイプになることがある。Pythonのグローバル変数は、すべてのモジュールに対してグローバルなのではなく、1つのモジュールオブジェクトの属性である。したがって、Pythonのモジュールは常に管理可能な方法で明示的にやり取りする。このため、モジュールどうしの結び付きは明確で理解しやすい。

Pythonは拡張モジュール(extension module)もサポートしている。拡張モジュールは、C、C++、Java、C#、Rustなどの他の言語でコーディングされたモジュールである。モジュールをインポートするPythonコードにとって、モジュールがピュアPythonなのか拡張なのかはたいしたことではない。モジュールは常にPythonで書き始めることができる。その後で高速化が必要になった場合は、モジュールをリファクタリングして、その一部を低水準言語で書き直すことができる。そうしたとしても、そのモジュールを使っているクライアントコードを変更する必要はない。 ...

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.