Cara Menyelesaikan Ketergantungan Import Pekeliling dalam Python: Perangkap Biasa

Mary-Kate Olsen
Lepaskan: 2024-10-31 11:53:31
asal
206 orang telah melayarinya

How to Resolve Circular Import Dependency in Python: A Common Pitfall

Kebergantungan Import Pekeliling: Perangkap Python Biasa

Menghadapi kebergantungan import pekeliling boleh mengecewakan, terutamanya dalam Python di mana modul sering saling bersambung. Satu contoh sedemikian berlaku apabila __init__.py pakej mengimport pakej lain, manakala fail dalam pakej kedua itu cuba mengimport yang pertama.

Pertimbangkan struktur direktori yang disediakan:

a/
    __init__.py
    b/
        __init__.py
        c/
            __init__.py
            c_file.py
        d/
            __init__.py
            d_file.py
Salin selepas log masuk

Dalam a's __init__.py, pakej c diimport. Walau bagaimanapun, c_file.py, yang terletak dalam pakej c, cuba mengimport a.b.d. Kebergantungan bulat ini mengakibatkan ralat pada masa jalan, mendakwa bahawa b tidak wujud.

Menyelesaikan Isu

Satu penyelesaian ialah menangguhkan import. Sebagai contoh, dalam a/__init__.py, anda boleh mentakrifkan fungsi:

<code class="python">def my_function():
    from a.b.c import Blah
    return Blah()</code>
Salin selepas log masuk

Dengan melengahkan import sehingga ia benar-benar perlu, anda mengelakkan pergantungan bulat. Walau bagaimanapun, adalah bijak untuk mempertimbangkan semula reka bentuk pakej anda. Kebergantungan sedemikian kadangkala boleh menandakan kecacatan reka bentuk atau keperluan untuk pemfaktoran semula.

Atas ialah kandungan terperinci Cara Menyelesaikan Ketergantungan Import Pekeliling dalam Python: Perangkap Biasa. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!