首頁  >  文章  >  後端開發  >  如何透過循環匯入維護 Python 中的類型提示?

如何透過循環匯入維護 Python 中的類型提示?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 13:04:01745瀏覽

How to Maintain Type Hints in Python with Cyclic Imports?

透過循環匯入維護Python 中的類型提示

使用大型Python 類別時,將它們拆分為多個檔案以實現更好的組織和可維護性可能會很有幫助。然而,由於潛在的循環導入,在保留類型提示的同時實現這一點可能具有挑戰性。

一種方法涉及在引用主類別的 mixin 類別中使用類型註解。但是,這可能會導致 Python 中不允許的循環導入。

要解決此問題,可以採用多種解決方案:

  • 保護程式碼區塊with 'TYPE_CHECKING':

    • 將mixin 類別中帶有型別註解的程式碼包含在檢查'TYPE_CHECKING' 常數的if 語句中。
    • 此常數設定為在類型檢查期間為 True(例如,透過 mypy 等工具),但在運行時為 False,有效地停用導入,否則會導致循環相依性。
    • 但是,這需要將類型提示明確註釋為字串,如下所示符號在運行時不可用。
  • 利用帶有'from future 導入註解'的前向聲明:

    • 在Python 3.7 中,此導入允許將所有類型註釋表示為字串,從而消除了顯式字串註釋的需要並提高了可讀性。
    • 請注意,所有類型提示都會變成字串,並且不會在運行時進行評估,可能會影響程式碼行為。
  • 考慮抽象基底類別(ABC) 方法:

    • Mypy 建議建立一個主類別和mixin 都繼承自ABC。
    • 這種方法可能更適合程式碼結構和可維護性至關重要的大型專案。

以上是如何透過循環匯入維護 Python 中的類型提示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn