2

パッケージの下部にある次のコードを使用して、Pythonでパッケージをテストするのが好きです。

if __name__ == "__main__":
    sys.exit(main())

ここmain()で、は上記で定義した関数です。今私の質問はこれです:

モジュールをテストするために、ユーザーがモジュールをインポートするだけの場合(つまり、別のスクリプトから)にインポートする必要のない追加のパッケージをメインにインポートする必要があります。メインが明示的に実行されている場合にのみ、これらの追加パッケージをインポートする方法はありますか?そして、私のパッケージがインポートされたばかりの場合(つまり、別のスクリプトから)、これらの余分なパッケージはインポートされません。

4

2 に答える 2

4

インポートステートメントを本文に直接入れてみませんmain()か?それはそれをする必要があります。

def main():
   import my_module # import ONLY if main is called
   # code
于 2012-10-26T07:35:59.817 に答える
3

Pythonでは、コード内の任意の場所にインポートを配置できます。

だからあなたは持つことができます:

if __name__ == "__main__":
    import <package> # place your imports here
    sys.exit(main())

「怠惰なインポート」については、この質問で詳しく説明します

于 2012-10-26T07:39:22.073 に答える