TIL

Today I Learned. 知ったこと、学んだことを書いていく

__init__.pyについて

Pythonでの__init__.pyについて調べてみた

__init__.pyの役割

  • __init__.pyがあるディレクトリをパッケージとして扱えるようになる(Python3からは__init__.pyが無くてもパッケージとして認識されるようになった)
  • 初期化処理を記述できる

パッケージとして扱えるようにする

以下のようなフォルダを作成する

.
├── pkg
│   ├── __init__.py
│   └── import_test.py
└── test.py
# ./pkg/import_test.py
print('import_test.py is imported!')

def print_name():
    print(__name__)
# ./test.py
from pkg import import_test

if __name__ == '__main__':
    import_test.print_name()

pkg内に__init__.pyを作成しておくだけで、pkgをパッケージとして扱えるようになる。パッケージ内のファイルにインポートするにはfrom パッケージ名 import ファイル名とする

test.pyの実行

$ python test.py
import_test.py is imported!
pkg.import_test

参考文献