Mengubah suai Senarai Dalam Fungsi
Dalam pengaturcaraan, adalah perkara biasa untuk bekerja dengan senarai, terutamanya dalam fungsi yang memanipulasi data. Walau bagaimanapun, isu timbul apabila cuba mengubah suai senarai yang diluluskan sebagai parameter dalam fungsi.
Pertimbangkan coretan kod berikut:
def function1(list_arg): a = function2() # returns an array of numbers list_arg = list(a) list1 = [0] * 5 function1(list1)
Anda mungkin menjangkakan list1 akan diubah suai selepas memanggil function1, tetapi ia tetap tidak berubah. Ini kerana apabila memberikan sesuatu kepada pembolehubah list_arg, ia menunjuk kepada nilai baharu. Walau bagaimanapun, senarai asal tidak terjejas.
Untuk mengatasinya, anda boleh mengubah suai elemen senarai asal sebaliknya:
def function1(list_arg): a = function2() # returns an array of numbers list_arg[:] = list(a)
Menggunakan list_arg[:] berkesan menggantikan semua elemen senarai asal. Walau bagaimanapun, perlu diingat bahawa pengubahsuaian di tempat seperti ini boleh mengelirukan dan mungkin tidak selalu menjadi pendekatan terbaik.
Atas ialah kandungan terperinci Mengapa Mengubah Suai Senarai Lulus sebagai Parameter dalam Fungsi Tidak Menjejaskan Senarai Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!