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

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

Mary-Kate Olsen
發布: 2024-10-23 12:53:30
原創
621 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板