これは本当に個人的な好みであり、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)。