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 が利用できる.これを使えばモジュール内での複雑な実装を隠してライブラリを提供できる。