2016-07-19 17 views
1

これは私がいつか答えを探していたが、実際にそれを見つけることができなかった理論的な質問です。Python:モジュールのインポートを最適化する

私のメインファイルmain.pyimport numpy as npimport helperであるとします。私はヘルパーファイルhelper.pyを持っている場合は、私はすでにmain.pyでそれをインポートして、私が今までhelper.pyを使用するだけの時間がnumpy常にインポートされ、その結果、main.pyを経由しているので、

は、私は、helper.pynpを使用することができますか?

+1

[同じモジュールが別のファイルにインポートされています](http://stackoverflow.com/q/18792145/2301450)? – vaultah

+3

実験をしたときに何が起こったのですか? – AlG

答えて

1

python documentation状態:

インポートステートメントは、2つの操作を組み合わせます。 という名前のモジュールを検索し、その検索の結果を のローカルスコープの名前にバインドします。

インポートモジュールの上部に発生した場合、ローカルスコープはグローバルであろう - モジュールにローカル即ち

プラス側では、通常は1回だけインポートされます。 Pythonはインポートを実行する前にキャッシュのインポートを検索し、見つかった場合は以前にインポートされたモジュールへの参照を作成します。これにより、2つ目のコピーを読み込む必要がありません。両方のモジュールでimportステートメントを実行することに(一般的に)害はありません。

インポート検索で最初にチェックされるのは、sys.modulesです。この マッピングは、中間パスを含めて、以前に がインポートされたすべてのモジュールのキャッシュとして機能します。 FAQsから

さらに

、:

どのように私は、モジュール間でグローバル変数を共有していますか?

プログラム内でモジュール間で情報を共有する標準的な方法は、特別なモジュール(configまたはcfgと呼ばれることが多い)を作成することです。 アプリケーションのすべてのモジュールでconfigモジュールをインポートするだけです。

関連する問題