Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengelak Kelakuan Tidak Dijangka dengan Parameter Lalai Boleh Berubah dalam Fungsi Python?

Bagaimanakah Saya Boleh Mengelak Kelakuan Tidak Dijangka dengan Parameter Lalai Boleh Berubah dalam Fungsi Python?

Barbara Streisand
Barbara Streisandasal
2024-12-08 05:36:10234semak imbas

How Can I Avoid Unexpected Behavior with Mutable Default Parameters in Python Functions?

Parameter Lalai Terikat Awal dalam Python: Mengelak Perangkap Biasa

Apabila bekerja dengan parameter lalai dalam Python, adalah penting untuk mengetahui potensi isu yang disebabkan oleh pengikatan awal. Parameter lalai terikat awal, seperti yang dimulakan kepada struktur data boleh ubah (mis., senarai), boleh bertindak secara tidak dijangka apabila fungsi dipanggil beberapa kali.

Pertimbangkan fungsi contoh berikut:

def my_func(working_list=[]):
    working_list.append("a")
    print(working_list)

Semasa memanggil fungsi ini buat kali pertama akan memulakan senarai kosong seperti yang dimaksudkan, panggilan seterusnya akan mengemas kini senarai yang sama. Ini boleh membawa kepada gelagat yang tidak diingini apabila senarai bertambah dengan setiap panggilan.

Untuk mengelakkan isu ini, disyorkan untuk memberikan nilai lalai Tiada untuk parameter lalai boleh ubah dan menyemaknya secara eksplisit dalam badan fungsi. Begini cara anda boleh mengubah suai fungsi contoh:

def my_func(working_list=None):
    if working_list is None:
        working_list = []

    working_list.append("a")
    print(working_list)

Dengan menetapkan nilai lalai kepada Tiada dan mengujinya secara eksplisit, setiap panggilan ke fungsi akan mencipta senarai kosong baharu, memastikan fungsi itu beroperasi seperti yang dijangkakan .

Pertimbangan Tambahan

Menurut PEP 8 garis panduan, menggunakan adalah atau tidak perbandingan dengan Tiada lebih diutamakan daripada == atau !=. Ini memastikan kejelasan dan mengurangkan risiko kemungkinan ralat.

Ingat untuk mengingati garis panduan ini apabila menggunakan parameter lalai untuk mengelakkan sebarang isu yang tidak diduga dalam kod anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Kelakuan Tidak Dijangka dengan Parameter Lalai Boleh Berubah dalam Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn