この質問は、次のSO投稿への回答です。
そのスレッドで、OPは誤って同じモジュールの先頭に自分のモジュールをインポートします。なぜこれが無限ループを引き起こさないのですか?
この質問は、次のSO投稿への回答です。
そのスレッドで、OPは誤って同じモジュールの先頭に自分のモジュールをインポートします。なぜこれが無限ループを引き起こさないのですか?
モジュールは一度だけインポートされます。Python は、それが既にインポートされていることを認識しているため、再度インポートすることはありません。
参照: http://docs.python.org/tutorial/modules.html#more-on-modules
Python がステートメントに遭遇すると、何かを行う前にまずモジュールの存在をimport
チェックします。sys.modules
import module
すでにインポートされている場合、モジュールをリロードしません
python はどのモジュールが既にインポートされているかを追跡するので、重複してインポートする時間が無駄になることはありません。各モジュールは一度だけインポートできます。
Python でインポートすると、インポートされたモジュールの名前空間バインディングがまだ存在しない場合、現在の名前空間に配置されます。モジュールを 2 回インポートすると、実際には 1 回だけインポート (したがって実行) されます。そのため、モジュールをそれ自体にインポートしても、名前空間バインディングが現在の名前空間に既に存在するため、実際には何も起こりません。