Python|モジュールとパッケージ
モジュール
Pythonでは、モジュール(module)は変数、関数、クラスなどを集めたファイルです.
モジュールに個別に結合する理由は次のとおりです.
モジュールのインポート
呼び出し時:モジュール.変数/関数()/クラス()
->必要な変数/関数/クラスをモジュール名に関連付けて呼び出す必要があります.
呼び出し時:変数/関数()/クラス()
->importキーを使用してモジュールをロードする場合は、モジュールの名前を付けることなく、必要な関数または変数およびクラスを直接呼び出すことができます.
->モジュール内のすべての変数/関数/クラスを取得します.
fromモジュールimport変数as name 1,関数as name 2,クラスas name 3
->モジュール/変数/関数/クラスはasを新しい名前として使用できます.
小包
パッケージ(package)とは、特定の機能に関連する複数のモジュールを組み合わせたものである.
Pythonファイルからなるディレクトリ(directory)がパッケージになります.そしてディレクトリ名がパッケージ名になります.
パッケージのインポート
パッケージは、通常のモジュールのようにインポートして使用できます.ただし、違いは、クラスオブジェクトを使用するように、「dot notation」を使用してパッケージ内の必要なモジュールをインポートできることです.
import pkg.mod1
from pkg.mod2 import func2
pkg.mod1.func2()
func2()
Package Initialization
パッケージのインポート時に初期設定が必要な場合があります.Pythonでは、
__init__.py
ファイルでパッケージの初期設定を許可します.(パッケージのインポート時に、__init__.py
ファイルのコードが自動的に実行されます.)__init__.py
ファイルを使用すると、次の作業を完了できます.Import時のパスの全長を減らす
# __init__.py
from .mod1 import func2
# main.py
from pkg import func2
func2()
パッケージからインポートできる変数/関数/クラスの制限
の内部でのみ使用される関数がパケット外部からインポートされて使用されることを防止するために、__all__
変数を指定することができる.__all__
変数のデフォルト値は、__all__
変数を個別に定義してインポートできる要素を制限するすべての関数/変数/クラスです.(
__all__
変数はstring要素を有するlistである.)# __init__.py
from .mod1 import func2
from .mod2 import func3
__all__ = ['func2', 'func3']
# main.py
from pkg import *
func2()
func3()
func4() ## <== Error. func4 함수는 __all__ 에 정의되지 않았으므로 import 될 수 없음.
他のパッケージのインポート時に最初に実行する必要があるコード。
他人のパッケージを使う(pip)
Pythonにパッケージをインストールするにはpipというツールを使用します.pipはパイソンのバッグマネージャーです.Djangoというパッケージをインストールする場合は、端末で次のコマンドを使用します.
pip install Django
Reference
この問題について(Python|モジュールとパッケージ), 我々は、より多くの情報をここで見つけました https://velog.io/@suasue/Python-모듈과-패키지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol