首頁 >後端開發 >Python教學 >如何解決 Python 類別拆分中的循環導入問題並利用類型提示?

如何解決 Python 類別拆分中的循環導入問題並利用類型提示?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-23 12:53:30622瀏覽

How to Resolve Cyclic Import Issues and Utilize Type Hints in Python Class Split?

Python 中的類型提示(無需循環導入)

Python 中的類型提示為完成和靜態類型檢查提供了寶貴的幫助。然而,當嘗試將一個類別拆分為多個文件,同時由於循環導入而維護類型提示時,就會出現問題。

解決此問題的一種方法是引入抽象基類 (ABC) 作為中介。這需要修改主類別和mixin 檔案:

main.py:

<code class="python">from abc import ABC
from mymixin import MyMixinABC

class Main(MyMixinABC):
    def func1(self, xxx):
        ...</code>

mymixin.py:

<code class="python">import abc

class MyMixinABC(abc.ABC):
    def func2(self: 'MyMixinABC', xxx):
        ...</code>

mymixin.py:

透過使用ABC,我們在主類別和mixin 之間建立了正式的契約。類型提示現在可以準確地引用 ABC 而不是實際的類別名稱。

對於Python 3.7 用戶,可以使用PEP 563 實現更簡潔的方法:
<code class="python">from __future__ import annotations

class Main:
    def func1(self, xxx):
        ...</code>

main.py:

<code class="python">from __future__ import annotations

class MyMixin:
    def func2(self, xxx):
        ...</code>
main.py:

my🎜>這些技術可讓您將類別分割為多個文件,同時防止循環匯入並保留優勢程式碼中的類型提示。

以上是如何解決 Python 類別拆分中的循環導入問題並利用類型提示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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