Dalam Python, mengubah suai objek terbina dalam boleh membawa kepada ralat yang tidak dijangka. Pertimbangkan kod berikut:
def example(parameter): global str str = str(parameter) print(str) example(1) example(2)
Setelah melaksanakan kod ini, anda mungkin menghadapi dua senario berbeza. Panggilan pertama ke example() berjaya, manakala panggilan kedua menimbulkan TypeError. Ini kerana tugasan kedua untuk str mentakrifkan semula maknanya.
Dalam Python, str() ialah fungsi pratakrif yang menukar objek kepada rentetan. Menugaskan str kepada nilai baharu menggantikan fungsi terbina dalam ini. Dengan mengisytiharkan str sebagai global, anda menunjukkan bahawa ia harus merujuk kepada pembolehubah peringkat atas di luar fungsi.
Untuk menyelesaikan masalah TypeError, anda mempunyai dua pilihan:
Ingat, mengubah suai objek terbina dalam boleh mendatangkan akibat yang tidak diingini. Tetap menggunakan pembolehubah tempatan dalam fungsi untuk mengelakkan konflik dengan tingkah laku lalai Python.
Atas ialah kandungan terperinci Mengapa Adakah `str = str(...)` Menyebabkan TypeError dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!