Python の__init__.py

Shivam Arora 2022年1月23日 2021年10月19日
Python の__init__.py

Python には、通常パッケージと名前空間パッケージという 2 種類のパッケージがあります。通常のパッケージは、Python 3.2 以前のバージョンに存在します。これらのパッケージは、暗黙的に呼び出されるか実行される __init__.py ファイルを含むディレクトリとして使用されます。

Python の __init__.py ファイルは、ディレクトリにモジュール内の Python コードが含まれていることをインタプリタに知らせます。このファイルには、他の Python モジュールと同じコードを含めることができます。

__init__.py という名前のファイルは、ディレクトリに Python パッケージとしてフラグを立てるために使用されます。

例えば、

mydir/spam/__init__.py
mydir/spam/module.py

このファイルが削除されると、Python はディレクトリ内のサブモジュールを検索できなくなり、モジュールのインポートに失敗します。

Python で __init__.py を使用する主な理由

  1. __init__.py を使用すると、他のユーザーはパッケージ内の関数の正確な場所を知ることができなくなります。
your_package/
  __init__.py
  file1.py
  file2.py
    ...
  fileN.py
  1. __init__.py を使用すると、上部のロギングなどの詳細を初期化するのに役立ちます。
import logging.config
logging.config.dictConfig(Your_logging_config)
  1. __init__.py は、ファイルのインポートを容易にするのに役立ちます。関数 fn() は、パッケージ内にある場合、ファイル filename.py からインポートできます。
from filename import fn()

関連記事 - Python Package