pythonで初めてパッケージの自作をしたときのメモです.
バージョンはPython 3.6.7です.
まず,parentというディレクトリを作り,そこにchildというディレクトリを作ります.
そして,そこにhello.py
というファイルを作りました.
parent/child/hello.py
def say_hello():
return "Hello!!"
そして,childディレクトリに__init__.py
という空のファイルを作りました.
次に,parentディレクトリに戻り,
main.py
というファイルを作ります.
parent/main.py
from child import hello
print(hello.say_hello())
結果,次のような構成となりました.
parentディレクトリ
|
|-- main.py
|
|-- childディレクトリ
|
|-- hello.py
|--__init__.py #空ファイル
parentディレクトリでmain.py
を実行すると,次のように表示されました.
$ python main.py
Hello!!
さて,__init__.py
の意味を確かめたく,試しにこれを削除してみました.
$ cd child
child $ del __init__.py
child $ cd ..
そしてmain.py
を実行するとやはり,正常に表示されます.
$ python main.py
Hello!!
参考書では__init__.py
がないと正常に動かないとあったのですが,不思議に思い,調べてみました.
すると,こちらのサイトによると,Python 3.3以降では__init__.py
はなくても動きはするということが分かりました.(初期化処理を行える点で,あったほうがいいけど)
以上,備忘録でした