ホームページ > バックエンド開発 > Python チュートリアル > 循環インポートの問題を解決し、Python クラス分割で型ヒントを利用する方法

循環インポートの問題を解決し、Python クラス分割で型ヒントを利用する方法

Mary-Kate Olsen
リリース: 2024-10-23 12:53:30
オリジナル
620 人が閲覧しました

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

循環インポートを使用しない Python の型ヒント

Python の型ヒントは、コード補完と静的型チェックにおいて貴重な支援を提供します。ただし、循環インポートにより型ヒントを維持しながらクラスを複数のファイルに分割しようとすると問題が発生します。

この問題を解決する 1 つのアプローチは、抽象基本クラス (ABC) を仲介として導入することです。これには、メイン クラスとミックスイン ファイルの両方を変更する必要があります:

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>
ログイン後にコピー

ABC を使用することで、メインクラスとミックスインの間に正式な契約を確立します。型ヒントは、実際のクラス名ではなく ABC を正確に参照できるようになりました。

Python 3.7 ユーザーの場合、PEP 563:

main.py を使用して、より簡潔なアプローチが可能です。

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

class Main:
    def func1(self, xxx):
        ...</code>
ログイン後にコピー

mymixin.py:

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

class MyMixin:
    def func2(self, xxx):
        ...</code>
ログイン後にコピー

これらの手法を使用すると、循環インポートを防止して利点を維持しながら、クラスを複数のファイルに分割できます。コード内で型ヒントを使用します。

以上が循環インポートの問題を解決し、Python クラス分割で型ヒントを利用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート