Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?

Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 03:19:17934semak imbas

How Can I Solve Circular Import Errors in Python?

Mengatasi Ralat Import Pekeliling dalam Python

Dalam Python, import pekeliling berlaku apabila berbilang modul cuba mengimport antara satu sama lain. Ini boleh membawa kepada ralat seperti "ImportError: Tidak boleh mengimport nama X" atau "AttributeError: ... (kemungkinan besar disebabkan oleh import bulat)."

Sebagai contoh, pertimbangkan perkara berikut kod:

main.py:

from entity import Ent

entity.py:

from physics import Physics

class Ent:
    ...

fizik.py:

from entity import Ent

class Physics:
    ...

Apabila anda berlari main.py, anda akan menghadapi ralat:

Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent

Ralat disebabkan oleh pergantungan bulat antara fizik.py dan entity.py. Physics.py cuba mengimport entity.py, yang sudah dimulakan.

Untuk menyelesaikan isu ini, anda harus mengalih keluar kebergantungan kepada physics.py daripada modul entity.py. Contohnya, anda boleh mengubah suai entity.py seperti berikut:

entity.py:

# Do not import physics.py

class Ent:
    ...

Kini, apabila anda menjalankan main.py, anda tidak sepatutnya menghadapi ralat lagi.

Untuk pemahaman lanjut tentang import pekeliling, rujuk sumber yang disediakan dalam nota kaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Ralat Import Pekeliling dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn