Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengelakkan AttributeError dalam Senario Import Bersama dalam Python?

Bagaimana untuk Mengelakkan AttributeError dalam Senario Import Bersama dalam Python?

Barbara Streisand
Lepaskan: 2024-10-20 13:06:30
asal
241 orang telah melayarinya

How to Avoid AttributeError in Mutual Import Scenarios in Python?

AttributeError: 'modul' Objek Kurang Atribut dalam Senario Import Bersama

Dalam Python, ralat biasa timbul semasa mengendalikan import bersama antara modul. Pertimbangkan contoh berikut:

<code class="python"># a.py
import b

# Functions defined within a.py...

# b.py
import a

# Functions defined within b.py...</code>
Salin selepas log masuk

Setelah menjalankan a.py, ralat berikut mungkin berlaku:

AttributeError: 'module' object has no attribute 'hi'
Salin selepas log masuk

Ralat ini menunjukkan bahawa a.py tidak dapat mengakses atribut hi dari modul b.py yang diimport. Untuk memahami sebab di sebalik ralat ini, adalah penting untuk mengenali perangkap pengimportan peringkat tertinggi bersama.

Lazimnya, import bersama tidak digalakkan, kerana ia boleh membawa kepada kebergantungan bulat dan menjadikan kod kurang dapat diselenggara. Sebaliknya, Python mengesyorkan mengimport modul dalam fungsi. Dalam contoh yang diberikan, isu ini boleh diselesaikan dengan mengubah suai a.py dan b.py seperti berikut:

<code class="python"># a.py
def import_b_and_call_hi():
    import b
    b.hi()

# Functions defined within a.py...

# b.py
def hi():
    print("hi")</code>
Salin selepas log masuk

Kini, apabila a.py dilaksanakan, ia akan mengimport b.py dan memanggil dengan lancar fungsi hi dari dalam fungsi import_b_and_call_hi. Teknik ini memastikan bahawa import bersama tidak menyebabkan sebarang isu pergantungan.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan AttributeError dalam Senario Import Bersama dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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