Import pekeliling timbul apabila dua atau lebih modul cuba mengimport satu sama lain. Walaupun import mudah boleh berfungsi dengan lancar, isu timbul apabila modul cuba mengimport nama atau atribut tertentu daripada modul lain yang juga cuba mengimport daripadanya.
Secara langsung import pekeliling, modul cuba mengimport satu sama lain secara keseluruhan menggunakan penyata import langsung. Contohnya:
# foo.py import bar # bar.py import foo
Pada mulanya, kedua-dua modul dimuatkan tanpa masalah. Walau bagaimanapun, jika satu modul cuba mengakses nama yang memerlukan modul lain dimuatkan sepenuhnya, ralat masa jalan boleh berlaku.
Untuk mengelakkan ralat masa jalan, gunakan import tidak langsung, di mana modul mengimport atribut atau nama khusus dan bukannya keseluruhan modul. Contohnya:
# foo.py from bar import xyz # bar.py from foo import abc
Pendekatan ini membenarkan kedua-dua modul mengimport atribut yang diperlukan tanpa memerlukannya untuk dimuatkan sepenuhnya.
Python 2 mempamerkan tingkah laku yang sedikit berbeza mengenai import pekeliling. Dalam senario khusus tertentu, seperti mengimport dari bahagian atas modul, tidak menggunakan "dari" dan hanya menggunakan import relatif, import pekeliling mungkin berfungsi dalam Python 2 tetapi tidak dalam Python 3.
Contoh berikut menggambarkan senario tambahan di mana import pekeliling dibenarkan dalam Python:
Atas ialah kandungan terperinci Bagaimanakah Import Pekeliling dalam Python Boleh Dielakkan dan Apakah Akibatnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!