Bagaimanakah penutupan dilaksanakan dalam Python?

WBOY
Lepaskan: 2023-10-21 10:33:56
asal
1023 orang telah melayarinya

Bagaimanakah penutupan dilaksanakan dalam Python?

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:

  1. 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
    Salin selepas log masuk
  2. 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)
    Salin selepas log masuk
  3. 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
    Salin selepas log masuk
  4. 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()
    Salin selepas log masuk

    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
    Salin selepas log masuk

    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
    Salin selepas log masuk

    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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!