Python での循環インポートの防止
Python では、定義に関してモジュールが相互に依存する循環インポートにより、実行時エラーが発生する可能性があります。一般に、循環依存関係を避けるためにコードを再設計することが推奨されますが、循環依存関係に対処する必要がある場合もあります。
絶対インポート
循環インポートにモジュールのインポートが含まれる場合、絶対インポートを使用する必要があります。これには、モジュールの完全なパスを指定し、モジュールがコードベース内のどこに配置されているかに関係なくインポートが成功するようにすることが含まれます。
インポートの延期
もう 1 つの方法は、インポートを延期することです。実際にはコード内で必要になります。インポートを処理する関数またはコード ブロックを定義すると、モジュールの最上位レベルでの循環インポートの問題を回避できます。
中央インポート モジュール
中央インポート内モジュール (通常はパッケージまたはフォルダー内の __init__.py ファイル) を使用すると、必要なインポートをすべて一元管理できます。ただし、このアプローチでは、インポート ステートメントが長くて乱雑になる可能性があります。
コードの再編成
モジュール内のオブジェクトが相互に参照することから循環依存関係が発生する場合、コードの再編成が行われる可能性があります。必要なことだ。参照を関数またはコード ブロック内に移動することで、インポートの問題を解決できます。
例
2 つのクラス A と B がそれぞれを参照するシナリオを考えてみましょう。他人のインスタンス。これらを別々のモジュールで定義するのではなく、両方のクラス定義を 1 つのモジュール内に配置することを検討してください。あるいは、不変性が懸念される場合は、循環依存関係を導入せずに個別に使用できるクラスの不変バージョンを作成することもできます。
以上がPython で循環インポートを防ぐには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。