Python 中的循環導入預防
在 Python 中,循環導入(模組相互依賴定義)可能會導致運行時錯誤。雖然通常建議重新設計程式碼以避免循環依賴,但在某些情況下有必要解決這些問題。
絕對導入
在循環導入涉及導入模組的情況下,應該使用絕對導入。這涉及指定完整的模組路徑,確保導入成功,無論其位於程式碼庫中的哪個位置。
延遲導入
另一種方法是延遲導入,直到導入成功為止。程式碼中實際上需要。透過定義處理導入的函數或程式碼區塊,您可以避免模組頂層的循環導入問題。
中央導入模組
在中央導入中模組(通常是套件或資料夾中的 __init__.py 檔案),可以集中所有必要的導入。然而,這種方法可能會導致導入語句又長又混亂。
程式碼重組
如果循環依賴是由模組內的物件相互引用引起的,則程式碼重組可能會導致循環依賴。有必要。透過在函數或程式碼區塊內移動引用,可以解決導入問題。
範例
考慮一個場景,其中兩個類別 A 和 B 希望分別引用別人的實例。不要在單獨的模組中定義它們,而是考慮將這兩個類別定義放在一個模組中。或者,如果不可變性是一個問題,您可以建立該類別的不可變版本,該版本可以單獨使用,而不會引入循環依賴項。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3