ホームページ >バックエンド開発 >Python チュートリアル >Python で循環インポート エラーを解決するにはどうすればよいですか?

Python で循環インポート エラーを解決するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 03:19:17934ブラウズ

How Can I Solve Circular Import Errors in Python?

Python での循環インポート エラーへの対処

Python では、複数のモジュールが相互にインポートしようとすると、循環インポートが発生します。これにより、「ImportError: Cannot import name X」または「AttributeError: ... (循環インポートが原因である可能性が高い)」などのエラーが発生する可能性があります。

たとえば、次のことを考慮してください。 code:

main.py:

from entity import Ent

entity.py:

from physics import Physics

class Ent:
    ...

physics.py:

from entity import Ent

class Physics:
    ...

を実行するとmain.py を実行すると、次のエラーが発生します:

Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent

エラーの原因は次のとおりです。 Physicals.py とentity.py の間の循環依存関係。 Physics.py は、すでに初期化中のentity.pyをインポートしようとします。

この問題を解決するには、entity.pyモジュールからphysics.pyへの依存関係を削除する必要があります。たとえば、entity.py を次のように変更できます。

entity.py:

# Do not import physics.py

class Ent:
    ...

これで、main.py を実行するときにエラーが発生しなくなります。

循環インポートをさらに理解するには、脚注に記載されているリソースを参照してください。

以上がPython で循環インポート エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。