Bagaimana untuk Menyelesaikan \'AttributeError: \'module\' objek tidak mempunyai atribut\' Teka-teki?

Barbara Streisand
Lepaskan: 2024-10-20 12:51:30
asal
335 orang telah melayarinya

How to Resolve the

Menyelesaikan "AttributeError: 'module' object has no attribute [duplikat]" Conundrum

The "AttributeError: 'module' object has ralat tiada atribut" berlaku apabila modul Python cuba mengakses atribut yang tidak wujud dalam ruang namanya. Dalam senario yang diberikan, modul a.py menghadapi isu ini apabila cuba mengakses fungsi hi() yang ditakrifkan dalam b.py.

Punca ralat ini terletak pada kehadiran import peringkat atasan bersama antara a.py dan b.py. Semasa menggoda untuk organisasi kod, import bersama boleh membawa kepada kebergantungan bulat dan kekeliruan carian atribut.

Membetulkan Ralat:

Untuk menyelesaikan isu ini, elakkan daripada menggunakan bahagian atas bersama -import peringkat. Sebaliknya, gunakan strategi berikut:

  1. Import Modul Dalam Fungsi:

    Alihkan pernyataan import dalam fungsi yang memerlukan kefungsian modul lain. Contohnya, dalam b.py:

    <code class="python">def cause_a_to_do_something():
        import a
        a.do_something()</code>
    Salin selepas log masuk
  2. Gunakan Import Relatif (Pilihan):

    Jika struktur kod anda membenarkannya, gunakan import relatif untuk mengelakkan pengimportan modul dari peringkat atas. Sebagai contoh, dalam b.py:

    <code class="python">from . import a
    def hi():
        print("hi")</code>
    Salin selepas log masuk

Memahami Maksud Ralat:

"AttributeError" menunjukkan bahawa objek modul ( dalam kes ini, a.py) tidak mempunyai atribut yang diingini (hi()). Ini kerana hi() ialah fungsi yang ditakrifkan dalam b.py, yang a.py belum lagi diimport apabila ia cuba mengaksesnya.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'AttributeError: \'module\' objek tidak mempunyai atribut\' Teka-teki?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!