🤖

Pythonの__init__についてメモ

に公開

init.py ってなにもの

myDir
 - __init_.py
 - sample.py
main.py

みたいにいるファイル、何者なのか

Pythonにおける定義(イメージ)

モジュール => pythonのファイル
パッケージ => ディレクトリとその中身

myDir
 - __init_.py
 - sample.py
main.py

この時、myDirはパッケージで、sample.pyはモジュール
__init__.pyはこのパッケージに何があるかをまとめる場所
(もともとは、単一モジュールのパッケージを呼び出す際に短縮する方法だった?)

import myDir

myDir() # myDir/__init_.pyに定義されたものが出力される

all と import *

from myDir import *

を使用する時に、__init__.py__all__を定義しておくことで、パッケージ配下のモジュールを全て読み込める

myDir
 - __init__.py
 - sample1.py
 - sample2.py
 - sample3.py
__init__.py
import sample1
import sample2
import sample3
__all__ = ['sample1','sample2','sample3']
from myDir import *

sample1()
sample2()
sample3()

と呼べるようになる

Discussion