これは本当に個人的な好みであり、Pythonモジュールのレイアウトと関係があります。
というモジュールがあるとしましょうerikutils
。そこには、モジュールとすることができるという二つの方法があり、どちらかが呼ばれるファイル持っerikutils.pyあなたのsys.path
ディレクトリが呼び出されたりerikutilsあなたのsys.path
空と__init__.py
その内部のファイルを。そして、あなたが呼ばれるモジュールの束を持っているとしましょうfileutils
、procutils
、parseutils
とあなたはそれらの下にサブモジュールになりたいですerikutils
。したがって、fileutils.py、procutils.py、およびparseutils.pyという名前の.pyファイルをいくつか作成します。
erikutils
__init__.py
fileutils.py
procutils.py
parseutils.py
たぶん、あなただけではない属しを行い、いくつかの機能を持っているfileutils
、procutils
またはparseutils
モジュールを。そして、と呼ばれる新しいモジュールを作成したくないとしましょうmiscutils
。そして、次のように関数を呼び出せるようにします。
erikutils.foo()
erikutils.bar()
するのではなく
erikutils.miscutils.foo()
erikutils.miscutils.bar()
のでので、erikutils
モジュールは、ディレクトリ、ファイルではなく、我々は内部のそれの機能を定義する必要があります__init__.py
ファイル。
djangoで、私が考えることができる最良の例はdjango.db.models.fields
です。すべてのdjango * Fieldクラスは__init__.py
、django / db / models / fieldsディレクトリのファイルで定義されています。私は、彼らは架空のに塾のすべてのものにしたくなかったので、彼らはこれをしたと思いますジャンゴ/ DB /モデル/ fields.pyモデル、彼らは(いくつかのサブモジュールにそれを分割するので、related.py、files.py例えば、)と彼らは、作成された* Field定義をfieldsモジュール自体に貼り付けました(したがって、__init__.py
)。