Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengelakkan Import Kitaran dalam Pembayang Jenis Python?
Taip Pembayang dalam Python Tanpa Import Kitaran
Masalah:
Apabila memisahkan kelas yang besar ke dalam berbilang fail, import kitaran boleh menghalang pembayang jenis daripada berfungsi dengan betul. Khususnya, mengimport kelas "utama" dalam kelas mixin mewujudkan kebergantungan bulat yang menghalang semakan jenis.
Penyelesaian:
Untuk Python 3.4:
Gunakan struktur kod berikut:
<code class="python"># main.py import mymixin.py class Main(object, MyMixin): def func1(self, xxx): ... # mymixin.py from typing import TYPE_CHECKING if TYPE_CHECKING: from main import Main class MyMixin(object): def func2(self: 'Main', xxx): # Note the string type hint ...</code>
Pemalar TYPE_CHECKING memastikan import main.py hanya dinilai semasa pemeriksaan jenis, mengelakkan ralat import kitaran.
Untuk Python 3.7 :
Python 3.7 memperkenalkan penyelesaian yang lebih elegan:
<code class="python"># main.py import mymixin.py class Main(object, MyMixin): def func1(self, xxx): ... # mymixin.py from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from main import Main class MyMixin(object): def func2(self: Main, xxx): # No need for a string type hint ...</code>
Import anotasi import masa hadapan membolehkan pembayang jenis rentetan dan mengelak daripada menilai mereka pada masa jalan.
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Import Kitaran dalam Pembayang Jenis Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!