しょっちゅう忘れることを書いておく。
![]() |
66 |
263 views
__init__.py
ファイルは、Python のディレクトリが Python パッケージとして扱われるようにするためのマーカーファイルです。このファイルがあるディレクトリは、Python によってパッケージとして認識されます。これにより、そのディレクトリ内のモジュールやサブパッケージが import
ステートメントを使って他の Python スクリプトから参照できるようになります。
Python 3.3 から導入されたPEP 420により、名前空間パッケージ (namespace packages) という概念が導入されました。この変更により、__init__.py
ファイルがないディレクトリも Python パッケージとして認識されるようになりました。したがって、Python 3.3 以降では、明示的なパッケージ初期化のために __init__.py
ファイルをディレクトリに配置する必要は必ずしもありません。
しかし、__init__.py
ファイルは完全に無用ではありません。以下のような場面で依然として重要です:
パッケージの初期化: パッケージがインポートされた際に特定のコードを実行する必要がある場合(例えば、パッケージレベルでのデータの初期化やサブモジュールのインポートなど)には、__init__.py
を使用します。
名前空間の明示: 古いバージョンの Python や、特定のツールやフレームワークが旧来のパッケージ構造を要求する場合、__init__.py
ファイルが必要です。
パッケージの区別: 空の __init__.py
を配置することで、通常のディレクトリと Python パッケージディレクトリを明確に区別できます。
例えば、あるパッケージ内で共有の変数や初期設定を行う必要がある場合、__init__.py
内でこれらを設定すると、パッケージ内の他のモジュールから容易にアクセスできるようになります。
# mypackage/__init__.py
print("mypackage is being initialized")
config = {'key': 'value'}
Python 3.10 を使用している場合でも、特定の初期化コードを実行したり、特定のパッケージ構造を明示したりする必要がある場合には __init__.py
を利用することが推奨されます。ただし、単にディレクトリをパッケージとして認識させるだけであれば、このファイルを省略することができます。
Page 62 of 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/