1

Python がモジュールをインポートしたい場合、最初に を調べますsys.modulessys.modulesしかし、辞書のキーと値のペアは固定された順序ではないため、同じ名前の 2 つのモジュールのどちらが最初にインポートされるかをどのように確認できますか?

4

1 に答える 1

7

これはマッピングであるため、 に同じ名前のモジュールが存在することはありsys.modulesません。

そこが肝心だ。ステートメントimport fooを使用してsys.modules['foo']存在する場合、そのモジュールが返されます。ファイルへのアクセスは不要で、そのモジュールの最上位コードを実行する必要もありません。

fooが存在しない場合は、 が最初に検出sys.pathされる場所を決定fooします。その値はリストなので順序があり、fooモジュールの検索はその順序に従って行われます。

于 2013-04-15T11:22:27.047 に答える