Selepas menghantar senarai ke fungsi, fungsi itu boleh terus mengakses kandungan senarai.
Andaikan ada sekumpulan pakar dan kami ingin menjemput mereka ke bengkel.
def send_invitation(experts): '''发送邀请函''' for expert in experts: print(expert + ',您好,现邀请您参加 XX 研讨会...') experts = ['小明', '小红'] send_invitation(experts)
Keputusan larian:
Hello Xiao Ming, anda kini dijemput untuk menyertai seminar XX…
Hello Huang Lili, anda kini dijemput untuk menyertai dalam seminar XX Akan...
Selepas parameter senarai diserahkan kepada fungsi, fungsi boleh mengubah suainya.
Nota: Sebarang pengubahsuaian yang dibuat pada senarai dalam fungsi adalah kekal.
def send_invitation(experts, informed): '''发送邀请函,并移动列表数据到【已通知】列表''' while experts: expert = experts.pop() print(expert + ',您好,现邀请您参加 XX 研讨会...') informed.append(expert) experts = ['小明', '小红'] # 专家列表 informed = [] # 已通知人员列表 print('执行前:experts=' + str(experts) + ',informed=' + str(informed)) send_invitation(experts, informed) print('执行后:experts=' + str(experts) + ',informed=' + str(informed))
Hasil larian:
Sebelum pelaksanaan: pakar=['Xiao Ming', 'Xiao Hong'], dimaklumkan=[]
Hello Xiaohong, , anda kini dijemput untuk menyertai seminar XX...
Hello Xiao Ming, anda kini dijemput untuk menyertai seminar XX...
Selepas pelaksanaan: pakar=[], informed=[' Xiaohong', 'Xiaoming']
Walaupun tanpa ulasan, nama fungsi deskriptif boleh menyatakan dengan jelas apa yang fungsi itu lakukan.
Kami juga boleh memanggil fungsi lain dalam fungsi, yang membantu memecahkan tugas yang rumit kepada satu siri langkah dan menjadikan atur cara lebih mudah dibaca.
Kadangkala, kami tidak mahu fungsi itu mengubah suai senarai yang diluluskan,
Dalam kes ini, kami boleh menghantar salinan senarai kepada fungsi:
experts = ['小明', '小红'] # 专家列表 informed = [] # 已通知人员列表 print('执行前:experts=' + str(experts) + ',informed=' + str(informed)) send_invitation(experts[:], informed) print('执行后:experts=' + str(experts) + ',informed=' + str(informed))
Hasil jalankan:
Sebelum pelaksanaan: pakar=['Xiao Ming', 'Xiao Hong'], dimaklumkan=[]
Helo Xiaohong, kini menjemput Anda menghadiri seminar XX...
Helo Xiao Ming, kini anda dijemput untuk menghadiri seminar XX...
Selepas pelaksanaan: pakar=['Xiao Ming ', 'Xiao Hong'] ,informed=['小红', '小明']
Walaupun menghantar salinan senarai ke fungsi boleh mengekalkan kandungan senarai asal,
melainkan ada sebab kukuh untuk berbuat demikian. Lakukan.
Oleh kerana mempunyai fungsi menggunakan senarai yang diluluskan meningkatkan prestasi dengan mengelakkan menghabiskan masa
mencipta salinan dalam ingatan, yang amat penting apabila berurusan dengan senarai data yang besar.
Atas ialah kandungan terperinci Bagaimana untuk lulus senarai dalam fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!