__init__.pyがなぜ必要なのか、初学者のメモ。(正確な説明ではない。)
__init__.pyの役割
・ディレクトリをPythonのパッケージとして扱うためのファイル(昔は必須、python3.3以降は必須ではない)。
・ディレクトリ名から直接関数を呼び出せるようにできる。
通常のインポート
通常、関数をインポートするときは、ディレクトリ名とファイル名の両方を書く必要がある。
from sample.math_utils import add
ここでは、
・ sample:ディレクトリ
・ math_utils:ファイル
・ add:関数
を指定している。
__init__.pyを使う場合
ディレクトリ直下に__init__.pyを置き、その中で他のファイルから関数をインポートしておく。
#sample/__init__.py
from .math_utils import add
すると、ユーザーはファイル名を書かずに、
from sample import add
と書ける。
これは、Pythonがsampleをインポートしたときに、自動でsample/__init__.pyを実行し、その中で読み込まれたaddを利用できるようになるためである。
参照
・Python の __init__.py とは何なのか
https://qiita.com/msi/items/d91ea3900373ff8b09d7
・chatGPT