Bagaimana penutupan dilaksanakan dalam Python?
Penutupan ialah fungsi yang ditakrifkan di dalam fungsi dan merujuk kepada pembolehubah fungsi luaran di dalam fungsi. Ciri ini membolehkan fungsi dalam mengakses pembolehubah fungsi luar, dan selepas fungsi luar selesai melaksanakan, penutupan masih boleh mengakses dan mengendalikan pembolehubah fungsi luar.
Penutupan dilaksanakan dalam Python melalui langkah-langkah berikut:
Tentukan fungsi luar, dan tentukan fungsi dalam di dalamnya: Pertama, kita perlu menentukan fungsi dalam di dalam fungsi luar. Fungsi dalaman ini adalah penutup.
def outer_function(): # 定义内部函数 def inner_function(): pass
Fungsi dalaman merujuk kepada pembolehubah fungsi luaran: Dalam fungsi dalaman, kita perlu merujuk kepada pembolehubah fungsi luaran. Anda boleh menggunakan pembolehubah fungsi luaran sebagai parameter fungsi dalaman atau menggunakan pembolehubah fungsi luaran terus di dalam fungsi dalaman.
def outer_function(): # 外部函数的变量 x = 10 # 定义内部函数 def inner_function(): # 引用外部函数的变量 print(x)
Kembalikan fungsi dalaman: Dalam fungsi luar, kembalikan fungsi dalaman sebagai nilai pulangan.
def outer_function(): # 外部函数的变量 x = 10 # 定义内部函数 def inner_function(): # 引用外部函数的变量 print(x) # 返回内部函数 return inner_function
Panggil fungsi luaran untuk menjana penutupan: Hasilkan penutupan dengan memanggil fungsi luaran. Pada ketika ini, fungsi dalam merujuk kepada pembolehubah fungsi luar, dan boleh terus mengakses dan beroperasi pada pembolehubah ini selepas fungsi luar selesai melaksanakan.
def outer_function(): # 外部函数的变量 x = 10 # 定义内部函数 def inner_function(): # 引用外部函数的变量 print(x) # 返回内部函数 return inner_function # 调用外部函数,生成闭包 closure = outer_function()
Melalui langkah di atas, kami telah berjaya melaksanakan penutupan dalam Python. Pada ketika ini, kita boleh mengakses dan memanipulasi pembolehubah fungsi luaran dengan memanggil penutupan.
closure() # 输出:10
Ciri penting penutupan ialah selepas fungsi luaran selesai melaksanakan, penutupan masih boleh mengakses dan mengendalikan pembolehubah fungsi luaran. Ini kerana penutupan mengekalkan rujukan kepada pembolehubah fungsi luar dan bukannya menyalin nilai pembolehubah. Oleh itu, kita boleh memerhatikan gelagat penutupan dengan memanggilnya beberapa kali.
def outer_function(): # 外部函数的变量 x = 10 # 定义内部函数 def inner_function(): # 引用外部函数的变量 print(x) # 返回内部函数 return inner_function # 调用外部函数,生成闭包 closure = outer_function() closure() # 输出:10 # 修改外部函数的变量 outer_function.x = 20 closure() # 输出:20
Melalui kod di atas, kita dapat melihat bahawa penutupan akan mengeluarkan pembolehubah fungsi luaran apabila dipanggil Walaupun selepas fungsi luaran selesai melaksanakan, penutupan masih boleh mengakses dan mengendalikan pembolehubah fungsi luaran.
Pelaksanaan penutupan dalam Python adalah mudah dan jelas Melalui mekanisme fungsi bersarang dan merujuk pembolehubah luaran, fungsi mempunyai keupayaan memori dan kegigihan. Ini adalah salah satu sebab mengapa penutupan digunakan secara meluas dalam Python.
Atas ialah kandungan terperinci Bagaimanakah penutupan dilaksanakan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!