28

numpyのようなライブラリがどのように機能するかについて質問がありました。をインポートnumpyすると、多数の組み込みクラス、関数、および などの定数へのアクセスが許可されnumpy.arrayますnumpy.sqrt

しかし、numpy 内には、 などの追加のサブモジュールがありますnumpy.testing

これはどのように行われますか?私の限られた経験では、サブモジュールを含むモジュールは__init__.pyファイルを含む単純なフォルダーですが、関数/クラスを含むモジュールは実際の python ファイルです。関数/クラスも持つモジュール「フォルダー」を作成するにはどうすればよいですか?

4

1 に答える 1

44

.pyファイルと aを含むフォルダーはa__init__.pyと呼ばれpackageます。クラスと関数を含むファイルの 1 つはmodule. フォルダーのネストにより、サブパッケージを提供できます。

たとえば、次の構造があるとします。

  mypackage
     __init__.py
     module_a.py
     module_b.py
        mysubpackage
             __init__.py
             module_c.py
             module_d.py

などをインポートできmypackage.module_aますmypackage.mysubpackage.module_c

mypackageそのコードを__init__.py. これは通常、醜いと考えられていますが。

numpy__init__.py を見ると、そこに多くのコードが表示されます。これらの多くは、これらのトップレベルのクラスと関数を定義しています。__init__.pyコードは、パッケージがロードされたときに最初に実行されるものです。

于 2013-09-01T04:22:28.187 に答える