pythonモジュールとパッケージ
1742 ワード
@(python)
モジュールパッケージ組織コード
次のパッケージの階層で構成されています.
各フォルダは1つのパケットに対応し、パケットの中には複数のパケットを含むことができ、対応する各パケットに対応する.pyファイルは特定のモジュールです.パッケージ化され、ファイルにコードを整理した後、各ディレクトリに
パッケージをインポートするときにサブモジュールをインポートしました.注意2つのモジュールをインポートする書き方のわずかな違い、再インポート後の呼び出し方式の違い.
複数についてpyファイルはそれぞれ複数のクラスを定義していますが、これらのファイルを1つのモジュールに帰属したい場合はmodule_を参照してください.eインポート方式.
上記の階層のモジュール組織について、各パッケージのモジュールの例を呼び出します.
制限モジュールすべてのコンテンツのインポート
一般的には
モジュールに何もしていない場合は、上記の文を実行すると、モジュール内の下線で始まる関数、変数がすべてインポートされます.モジュールに文
テストコード
リファレンス
python3-codebook
モジュールパッケージ組織コード
次のパッケージの階層で構成されています.
├── module_a.py
├── package_bc
│ ├── __init__.py
│ ├── module_b.py
│ ├── module_c.py
│ └── package_sub
│ ├── __init__.py
│ └── module_s.py
├── package_de
│ ├── __init__.py
│ ├── module_d.py
│ └── module_e.py
└── test.py
各フォルダは1つのパケットに対応し、パケットの中には複数のパケットを含むことができ、対応する各パケットに対応する.pyファイルは特定のモジュールです.パッケージ化され、ファイルにコードを整理した後、各ディレクトリに
__init__.py
ファイルが必要であることを確認すればよい.デフォルトではこのファイルは空で、importがパケットに対応するときに呼び出されます.インポートパケットの初期化設定として他の文を書き込むこともできます.以下のようにします.# package_de/__init__.py
#!/usr/bin/env python
# coding=utf-8
# by orientlu
from . import module_d
from .module_e import module_e_fun
if __name__ == "__main__":
pass
パッケージをインポートするときにサブモジュールをインポートしました.注意2つのモジュールをインポートする書き方のわずかな違い、再インポート後の呼び出し方式の違い.
複数についてpyファイルはそれぞれ複数のクラスを定義していますが、これらのファイルを1つのモジュールに帰属したい場合はmodule_を参照してください.eインポート方式.
上記の階層のモジュール組織について、各パッケージのモジュールの例を呼び出します.
## test.py
#!/usr/bin/env python
# coding=utf-8
# by orientlu
import module_a as ma
import package_bc.module_c
import package_bc.module_b as mb
import package_bc.package_sub.module_s as ms
import package_de
if __name__ == "__main__":
ma.module_a_fun()
mb.module_b_fun()
package_bc.module_c.module_c_fun()
ms.module_s_fun()
package_de.module_d.module_d_fun()
package_de.module_e_fun()
制限モジュールすべてのコンテンツのインポート
一般的には
from module import *
は推奨されず、多くの不要なモジュールコンテンツを導入すると、現在のネーミングスペースを汚染しやすい.モジュールに何もしていない場合は、上記の文を実行すると、モジュール内の下線で始まる関数、変数がすべてインポートされます.モジュールに文
__all__ = ['fun1', 'fun2']
を追加することで制限テストコード
リファレンス
python3-codebook