6

この質問は、次のSO投稿への回答です。

オブジェクトをピクルスにするにはどうすればよいですか?

そのスレッドで、OPは誤って同じモジュールの先頭に自分のモジュールをインポートします。なぜこれが無限ループを引き起こさないのですか?

4

5 に答える 5

10

モジュールは一度だけインポートされます。Python は、それが既にインポートされていることを認識しているため、再度インポートすることはありません。

参照: http://docs.python.org/tutorial/modules.html#more-on-modules

于 2010-08-24T16:51:34.413 に答える
4

Python がステートメントに遭遇すると、何かを行う前にまずモジュールの存在をimportチェックします。sys.modules

于 2010-08-24T16:51:35.303 に答える
2

import moduleすでにインポートされている場合、モジュールをリロードしません

于 2010-08-24T16:51:25.470 に答える
2

python はどのモジュールが既にインポートされているかを追跡するので、重複してインポートする時間が無駄になることはありません。各モジュールは一度だけインポートできます。

于 2010-08-24T16:51:34.473 に答える
2

Python でインポートすると、インポートされたモジュールの名前空間バインディングがまだ存在しない場合、現在の名前空間に配置されます。モジュールを 2 回インポートすると、実際には 1 回だけインポート (したがって実行) されます。そのため、モジュールをそれ自体にインポートしても、名前空間バインディングが現在の名前空間に既に存在するため、実際には何も起こりません。

于 2010-08-24T18:39:44.017 に答える