Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Adakah 'contoh = senarai(...)' Melemparkan 'TypeError: objek 'senarai' tidak boleh dipanggil'?

Mengapa Adakah 'contoh = senarai(...)' Melemparkan 'TypeError: objek 'senarai' tidak boleh dipanggil'?

Patricia Arquette
Lepaskan: 2025-01-03 22:13:42
asal
190 orang telah melayarinya

Why Does

Mengapakah "example = list(...)" menghasilkan "TypeError: 'list' object is not callable"?

Dalam Python, kod "example = list(...)" memberikan senarai yang dibina daripada argumen yang disediakan kepada pembolehubah "example". Walau bagaimanapun, jika ralat "TypeError: objek 'senarai' tidak boleh dipanggil" ditemui, ia menunjukkan bahawa nama "senarai" telah ditetapkan semula kepada objek tidak boleh dipanggil.

Secara khusus, Python membenarkan pembayangan nama terbina dalam, yang bermaksud adalah mungkin untuk mencipta pembolehubah dengan nama yang sama seperti fungsi atau kelas terbina dalam. Apabila ini berlaku, pembolehubah tempatan diutamakan berbanding terbina dalam, menjadikan pembolehubah terbina dalam tidak boleh diakses dalam skop tersebut.

Dalam kes ini, kemungkinan besar anda telah mencipta pembolehubah bernama "senarai" secara tidak sengaja yang merujuk kepada contoh kelas "senarai" dan bukannya fungsi senarai terbina dalam. Sebagai kelas, tika "senarai" tidak boleh dipanggil, membawa kepada "TypeError."

Bayangan ini boleh berlaku secara halus, seperti dalam contoh berikut:

example = list('abc')  # Create a list from the string 'abc'
list = list('xyz')  # Reassign 'list' to a new list instance
example = list('def')  # Error: 'list' is now an instance, not callable
Salin selepas log masuk

Untuk mengelakkan perkara sedemikian ralat, adalah penting untuk mengetahui potensi perlanggaran ruang nama dan menggunakan nama unik untuk pembolehubah. Selain itu, menggunakan IDE yang menyediakan pengesanan bayang-bayang nama boleh membantu mengenal pasti potensi konflik lebih awal.

Atas ialah kandungan terperinci Mengapa Adakah 'contoh = senarai(...)' Melemparkan 'TypeError: objek 'senarai' tidak boleh dipanggil'?. 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