Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Import Pekeliling dalam Python Diselesaikan dan Dielakkan?

Bagaimanakah Import Pekeliling dalam Python Diselesaikan dan Dielakkan?

Barbara Streisand
Lepaskan: 2024-12-18 03:03:11
asal
248 orang telah melayarinya

How Can Circular Imports in Python Be Resolved and Avoided?

Import Pekeliling dalam Python

Import pekeliling berlaku apabila berbilang modul cuba mengimport antara satu sama lain, membentuk pergantungan kitaran. Memahami gelagat import pekeliling adalah penting untuk pengaturcara Python.

Kesan Import Pekeliling

Jika dua modul secara langsung mengimport satu sama lain, seperti import foo dalam bar.py dan bar import dalam foo.py, import akan berjaya tanpa sebarang masalah. Walau bagaimanapun, masalah timbul apabila cuba mengimport atribut atau submodul tertentu dalam import bulat.

Pertimbangkan senario berikut:

# module foo.py
from bar import xyz

# module bar.py
from foo import abc
Salin selepas log masuk

Dalam kes ini, setiap modul memerlukan yang lain diimport sebelum ia boleh mengakses atribut atau submodul tertentu. Ini membawa kepada ralat import, kerana Python tidak dapat menentukan modul mana yang harus diimport dahulu dalam kitaran.

Import Pekeliling Bekerja dalam Python

Walaupun terdapat isu yang berpotensi, terdapat ialah senario tertentu di mana import pekeliling mungkin tidak menghadapi ralat:

  • Mengimport modul di bahagian atas fail: Jika kedua-dua modul diimport di peringkat teratas tanpa menggunakan sebarang atribut atau submodul tertentu, ia akan berfungsi dalam kedua-dua Python 2 dan Python 3.
  • Mengimport dari dalam fungsi menggunakan dari: Jika atribut atau submodul tertentu diimport dari dalam fungsi menggunakan dari, ia berfungsi dalam Python 2 dan Python 3.
  • Mengimport atribut pakej dan bukannya modul: Jika bukannya mengimport bar, atribut khusus xyz diimport daripada pakej bar menggunakan dari import bar xyz, import bulat mungkin masih berfungsi.

Contoh

Kod Python berikut menunjukkan import pekeliling berfungsi dalam pelbagai senario:

Contoh 1 (Python 3 sahaja)

# lib/foo.py
from . import bar

def abc():
    print(bar.xyz.__name__)

# lib/bar.py
from . import foo

def xyz():
    print(foo.abc.__name__)
Salin selepas log masuk

Contoh 2 (Python 2 sahaja)

# lib/foo.py
import bar

def abc():
    print(bar.xyz.__name__)

# lib/bar.py
import foo

def xyz():
    print(foo.abc.__name__)
Salin selepas log masuk

Contoh 3

# lib/foo.py
from lib.bar import xyz

# lib/bar.py
from lib.foo import abc
Salin selepas log masuk

Kesimpulan

Walaupun import pekeliling boleh membawa kepada ralat, tetapi Python mengendalikannya adalah penting. Dengan mengikut garis panduan yang digariskan di atas, pengaturcara boleh mengelakkan ralat import dan memastikan kelakuan yang betul bagi atur cara Python mereka.

Atas ialah kandungan terperinci Bagaimanakah Import Pekeliling dalam Python Diselesaikan dan Dielakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan