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
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!