Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengelak Kelakuan Tidak Dijangka dengan Parameter Lalai Boleh Berubah dalam Python?
Mengelakkan Isu dengan Parameter Lalai dalam Python
Apabila bekerja dengan parameter lalai Python, kerumitan tertentu boleh timbul, terutamanya dengan argumen boleh ubah. Untuk mengelakkan isu ini, adalah penting untuk menangani tingkah laku parameter lalai.
Sebagai contoh, pertimbangkan fungsi berikut:
def my_func(working_list=[]): working_list.append("a") print(working_list)
Setelah panggilan awal, senarai kosong parameter lalai berfungsi seperti yang dijangkakan . Walau bagaimanapun, panggilan seterusnya mengakibatkan tingkah laku yang tidak dijangka di mana parameter lalai, senarai kosong pada mulanya, mengekalkan elemen yang ditambahkan daripada pelaksanaan sebelumnya.
Untuk menyelesaikan isu ini dan mencipta senarai kosong baharu dengan setiap panggilan fungsi, Python menyediakan dua pendekatan :
1. Ujian untuk Tiada:
def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">if working_list is None: working_list = [] working_list.append("a") print(working_list)
2. Tugasan Bersyarat:
def my_func(working_list=None):</p><pre class="brush:php;toolbar:false">working_list = [] if working_list is None else working_list working_list.append("a") print(working_list)
Kedua-dua penyelesaian memastikan bahawa penyelesaian baharu senarai kosong dimulakan sebelum menambahkan elemen padanya, dengan itu mengasingkan setiap panggilan fungsi dan menghalang pengumpulan data daripada sebelumnya hukuman mati.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Kelakuan Tidak Dijangka dengan Parameter Lalai Boleh Berubah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!