Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menetapkan parameter lalai fungsi Python
Kami tahu bahawa jika parameter tidak ditentukan semasa memanggil fungsi, penterjemah Python akan membuang pengecualian. Untuk menyelesaikan masalah ini, Python membenarkan menetapkan nilai lalai untuk parameter, iaitu, apabila mentakrifkan fungsi, secara langsung menentukan nilai lalai untuk parameter formal. Dalam kes ini, walaupun tiada parameter dihantar kepada parameter formal dengan nilai lalai apabila fungsi dipanggil, parameter boleh terus menggunakan nilai lalai yang ditetapkan apabila fungsi ditakrifkan.
Python mentakrifkan fungsi dengan parameter nilai lalai Format sintaks adalah seperti berikut:
def 函数名(...,形参名,形参名=默认值): 代码块
Perhatikan bahawa apabila mentakrifkan fungsi menggunakan format ini, parameter formal yang menentukan nilai lalai mesti disertakan. dalam semua parameter yang tidak mempunyai nilai lalai parameter pada akhir, jika tidak ralat sintaks akan berlaku.
Atur cara berikut menunjukkan cara untuk mentakrif dan memanggil fungsi dengan parameter lalai:
#str1没有默认参数,str2有默认参数 def dis_str(str1,str2 = "http://c.biancheng.net/python/"): print("str1:",str1) print("str2:",str2) dis_str("http://c.biancheng.net/shell/") dis_str("http://c.biancheng.net/java/","http://c.biancheng.net/golang/")
Hasil yang dijalankan ialah:
str1: http://c. biancheng. net/shell/
str2: http://c.biancheng.net/python/
str1: http://c.biancheng.net/java/
str2: http://c .biancheng .net/golang/
Dalam atur cara di atas, fungsi dis_str() mempunyai 2 parameter, yang kedua mempunyai parameter lalai. Ini bermakna apabila memanggil fungsi dis_str(), kita boleh menghantar hanya 1 parameter, yang akan dihantar ke parameter str1, dan str2 akan menggunakan parameter lalai, seperti yang ditunjukkan dalam baris 6 program.
Sudah tentu, apabila memanggil fungsi dis_str(), anda juga boleh menghantar nilai kepada semua parameter (seperti yang ditunjukkan dalam baris 7 kod pada masa ini, walaupun str2 mempunyai nilai lalai,). ia akan memberi keutamaan kepada parameter yang dihantar kepadanya.
Pada masa yang sama, digabungkan dengan parameter kata kunci, tiga cara berikut untuk memanggil fungsi dis_str() juga mungkin:
dis_str(str1 = "http://c.biancheng.net/shell/") dis_str("http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/") dis_str(str1 = "http://c.biancheng.net/java/",str2 = "http://c.biancheng.net/golang/")
Sekali lagi, apabila mentakrifkan fungsi dengan parameter nilai lalai, terdapat parameter dengan nilai lalai. Mesti datang selepas semua parameter tanpa nilai lalai. Oleh itu, fungsi yang ditakrifkan dalam contoh berikut adalah tidak betul:
#语法错误 def dis_str(str1="http://c.biancheng.net/python/",str2,str3): pass
Jelas sekali, str1 mempunyai nilai lalai, manakala str2 dan str3 tidak mempunyai nilai lalai, jadi str1 mesti datang selepas str2 dan str3.
Sesetengah pembaca mungkin bertanya, untuk fungsi tersuai anda sendiri, anda boleh mengetahui dengan mudah parameter yang mempunyai nilai lalai, tetapi jika anda menggunakan fungsi terbina dalam yang disediakan oleh Python, atau fungsi yang disediakan oleh pihak ketiga yang lain, bagaimana anda tahu parameter yang mana ada nilai lalai?
Dalam Pyhton, anda boleh menggunakan "nama fungsi.__defaults__" untuk melihat nilai semasa parameter nilai lalai fungsi dan nilai pulangannya ialah tuple. Ambil fungsi dis_str() dalam bahagian ini sebagai contoh Berdasarkannya, laksanakan kod berikut:
print(dis_str.__defaults__)
Hasil pelaksanaan program ialah:
('http://. c. biancheng.net/python/',)
Atas ialah kandungan terperinci Bagaimana untuk menetapkan parameter lalai fungsi Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!