Pythonモジュールのインポート

Posted: , Modified:   Python Qiita

本稿は Qiita 投稿記事 のバックアップです.

目的

いくつかのモジュールからなるパッケージを作成した場合、インポート時にフォルダ名(パッケージ名)、 ファイル名(モジュール名)、インポートする関数やクラス名を書く必要があり import 文が長くなる。 これらを短くしたい。もしくは、モジュールを跨いでデフォルト設定でインポートしたい。

Python におけるインポートの仕様

ここ によると、 > import されたモジュール名は import を行っているモジュールのグローバルなシンボルテーブルに置かれます。import 文には、あるモジュール内の名前を、import を実行 しているモジュールのシンボルテーブル内に直接取り込むという変型が あります。(from..import..)

とのことなので、__init__.py で import を行うと,パッケージを import するだけで,__init__.py 内で import したシンボルを利用できる.

例えば,

/foo
  - __init__.py
  - bar.py

というフォルダ構成で、

$ cat bar.py
PIYO=100

$ cat __init__.py
from bar import PIYO

とした場合、import foo で,foo.PIYO が利用できる.これを使えばモジュール内での複雑な実装を隠してライブラリを提供できる。