Resolusi Ketergantungan Pekeliling dalam Python
Dalam Python, adalah mungkin untuk menghadapi kebergantungan bulat apabila modul bergantung pada satu sama lain untuk definisinya. Satu senario sedemikian wujud apabila dua fail, node.py dan path.py, mentakrifkan kelas Node dan Path, masing-masing, dengan masing-masing merujuk yang lain.
Pada mulanya, path.py mengimport node.py untuk mengakses Node objek. Walau bagaimanapun, pengubahsuaian baru-baru ini memperkenalkan kaedah dalam Node yang merujuk objek Path. Ini mencipta kebergantungan bulat, membawa kepada pengecualian semasa mengimport path.py.
Terdapat beberapa pendekatan untuk menyelesaikan kebergantungan bulat:
1. Rujukan Hadapan:
Gunakan rujukan hadapan dalam satu modul untuk mengisytiharkan nama kelas modul lain tanpa実際にmengimportnya. Dalam kes ini, path.py akan mengisytiharkan kelas Node dengan rujukan hadapan:
from typing import ForwardRef Node = ForwardRef("Node") class Path: def method_needs_node(self, node: Node): ...
2. Import Malas:
Import modul yang diperlukan hanya apabila ia diperlukan dalam fungsi. Ini amat sesuai apabila kebergantungan diperlukan hanya dalam satu atau beberapa fungsi:
# in node.py from path import Path class Node ... # in path.py class Path: def method_needs_node(): from node import Node n = Node() ...
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Ketergantungan Pekeliling dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!