Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Import Pekeliling dalam Python Boleh Dielakkan dan Apakah Akibatnya?

Bagaimanakah Import Pekeliling dalam Python Boleh Dielakkan dan Apakah Akibatnya?

Susan Sarandon
Lepaskan: 2024-12-18 05:44:14
asal
806 orang telah melayarinya

How Can Circular Imports in Python Be Avoided and What Are Their Consequences?

Akibat Import Pekeliling dalam Python

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.

Masalah: Import Pekeliling Langsung

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
Salin selepas log masuk

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.

Penyelesaian: Import Pekeliling Tidak Langsung

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
Salin selepas log masuk

Pendekatan ini membenarkan kedua-dua modul mengimport atribut yang diperlukan tanpa memerlukannya untuk dimuatkan sepenuhnya.

Pengecualian: Python 2 dan Senario Khusus

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 Tambahan

Contoh berikut menggambarkan senario tambahan di mana import pekeliling dibenarkan dalam Python:

  • Bawah modul, atribut import, bukan modul; "dari" import
  • Atas fungsi; "dari" import
  • Atas modul; "dari" import okay; relatif okay; Python 3 sahaja

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!

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