Python|モジュールとパッケージ


モジュール


Pythonでは、モジュール(module)は変数、関数、クラスなどを集めたファイルです.
モジュールに個別に結合する理由は次のとおりです.
  • は他のファイルで繰り返し使用できます.
  • 完全コードが大きすぎて1つのファイルに入れられない場合は、複数のファイルに分けてクリーンアップする必要があります.

    モジュールのインポート

  • importモジュール
    呼び出し時:モジュール.変数/関数()/クラス()
    ->必要な変数/関数/クラスをモジュール名に関連付けて呼び出す必要があります.
  • fromモジュール変数/関数/クラスのインポート
    呼び出し時:変数/関数()/クラス()
    ->importキーを使用してモジュールをロードする場合は、モジュールの名前を付けることなく、必要な関数または変数およびクラスを直接呼び出すことができます.
  • fromモジュールimport*
    ->モジュール内のすべての変数/関数/クラスを取得します.
  • 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()
  • 2

    パッケージからインポートできる変数/関数/クラスの制限

    の内部でのみ使用される関数がパケット外部からインポートされて使用されることを防止するために、__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