15

私はPythonプロジェクトで、複数のパッケージの使用を開始する必要があるという点に到達し始めたばかりであり、すべてがどのように連携するのかについて少し混乱しています。__init__.pyパッケージの何を正確に入れる必要がありますか?私が見ているいくつかのプロジェクトには空白の初期化があり、それらのコードはすべてそのパッケージのモジュールに含まれています。他のプロジェクトは、init内のパッケージのクラスと関数の大部分と思われるものを実装します。

__init__パッケージやファイルなどの使用に関してPythonの作成者が何を念頭に置いていたかを説明するドキュメントやスタイルガイドなどはありますか?

編集:私は、ファイルがフォルダーをパッケージにするという最も単純な意味でファイル
を持つことのポイントを知っています。__init__.pyしかし、なぜ同じフォルダー(パッケージ)にモジュールの代わりに関数を配置するのでしょうか?

4

2 に答える 2

8

__init__.py空にすることもできますが、実際に行うことは、Python がディレクトリを正しく処理するようにすること、パッケージをインポートするときに必要な初期化を提供すること (環境またはそれらの行に沿って何かを構成すること)、または__all__Python が何をすべきかを知るように定義することです。誰かが使用するときfrom package import *

知っておくべきことのほとんどは、Packages のドキュメントに記載されています。Dive Into Python にもパッケージングに関する記事があります。

于 2010-11-08T01:59:11.770 に答える
1

ご存知のように、Python がディレクトリをパッケージを含むものとして扱うには __init__.py ファイルが必要だと思います。

  1. 上記のモデルでは、__init__.py を空のままにすることができます。

  2. パッケージの初期化コードを実行することもできます。

  3. __all__ 変数を設定することもできます。

[編集: 学習] 「パッケージ インポート アイテムから」または「パッケージ インポートから *」を実行すると、変数 __all__ を使用して、選択したパッケージをインポートできます。

参照: http://docs.python.org/tutorial/modules.html

于 2010-11-08T02:03:06.793 に答える