Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah tugasan berantai berfungsi dalam Python, dan apakah kemungkinan perangkap apabila berurusan dengan objek boleh ubah?
Tugasan berantai dalam Python, seperti:
x = y = somefunction()
adalah bersamaan dengan dua pernyataan berikut yang dilaksanakan secara berurutan:
temp = somefunction() x = temp y = temp
Ini bermakna ungkapan di sebelah kanan pengendali tugasan dinilai terlebih dahulu, dan nilai yang terhasil kemudiannya diberikan kepada semua pembolehubah di sebelah kiri, dari kiri ke kanan.
Sebagai contoh, kod berikut akan mencetak nombor 10 dua kali:
def somefunction(): return 10 x = y = somefunction() print(x) print(y)
Adalah penting untuk ambil perhatian bahawa tugasan berantai boleh bermasalah apabila berurusan dengan objek boleh ubah, seperti senarai. Sebagai contoh, kod berikut memberikan senarai kosong yang sama kepada kedua-dua x dan y:
x = y = [] x.append(1) print(x) print(y)
Ini akan mencetak [1, 1] kerana kedua-dua x dan y merujuk kepada senarai yang sama. Jika anda berhasrat untuk membuat dua senarai berasingan, anda perlu menulis:
x = [] y = [] x.append(1) print(x) print(y)
Ini akan mencetak [1] dan [] kerana x dan y merujuk kepada senarai yang berbeza.
Atas ialah kandungan terperinci Bagaimanakah tugasan berantai berfungsi dalam Python, dan apakah kemungkinan perangkap apabila berurusan dengan objek boleh ubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!