これは本当に個人的な好みであり、Pythonモジュールのレイアウトと関係があります。
と呼ばれるモジュールがあるとしましょうerikutils。モジュールにする方法は2つあります。erikutils.pyというファイルがあり、erikutilsというディレクトリsys.pathがあり、その中に空のファイルがあります。次に、、と呼ばれるモジュールがたくさんあり、それらをの下のサブモジュールにしたいとします。したがって、 fileutils.py、procutils.py、およびparseutils.pyという名前の.pyファイルを作成します。sys.path__init__.pyfileutilsprocutilsparseutilserikutils
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クラスは、 django / db / models/fieldsディレクトリの__init__.pyファイルで定義されています。彼らはすべてを架空のdjango/db / models / fields.pyモデルに詰め込みたくなかったので、これを行ったと思います。そのため、いくつかのサブモジュール(related.py、files.pyなど)に分割し、作成された*Field定義をfieldsモジュール自体に貼り付けました(したがって、)。__init__.py