⊗pyPmFnCl 23 of 129 menu

Penutupan dalam Python

Penutupan (closure) merujuk kepada fungsi bersama-sama dengan semua pembolehubah luaran yang boleh diaksesnya.

Dalam Python, paling kerap, apabila menyebut "penutupan fungsi", yang dimaksudkan bukanlah fungsi itu sendiri, tetapi tepatnya pembolehubah luaran tersebut.

Katakan kita mempunyai fungsi outer berikut, di mana pembolehubah i diisytiharkan dan fungsi dalaman inner. Di dalamnya, satu akan ditambah kepada i. Untuk memastikan pembolehubah i berfungsi dengan betul, kita tambahkan arahan nonlocal kepadanya:

def outer(): i = 0 def inner(): nonlocal i i += 1 print(i) return inner

Sekarang mari letakkan fungsi luaran ke dalam pembolehubah res dan panggilnya dengan tanda kurung:

res = outer() res() # akan mengeluarkan 1

Mari panggil res beberapa kali. Selepas melaksanakan kod, pembilang i akan meningkat satu demi satu setiap kali:

res() # akan mengeluarkan 2 res() # akan mengeluarkan 3 res() # akan mengeluarkan 4

Walau bagaimanapun, terdapat nuansa penting di sini - setiap panggilan fungsi outer akan meningkatkan pembilangnya sendiri. Mari letakkan panggilan pertama outer ke dalam pembolehubah res1, dan panggilan kedua - ke dalam pembolehubah res2. Kemudian keluarkan mereka ke konsol secara berurutan:

res1 = outer() res1() # akan mengeluarkan 1 res1() # akan mengeluarkan 2 res1() # akan mengeluarkan 3 res2 = outer() res2() # akan mengeluarkan 1 res2() # akan mengeluarkan 2 res2() # akan mengeluarkan 3

Diberi kod berikut:

def outer(): i = 10 def inner(): nonlocal i i -= 2 print(i) return inner res1 = outer() res1() res1() res2 = outer() res2() res2() res2()

Beritahu, apa yang akan dikeluarkan ke konsol.

Buat fungsi, setiap panggilannya akan memanggil nombor Fibonacci berikutnya.

Buat fungsi yang akan memberikan nombor integer rawak dalam julat, tetapi supaya tidak ada yang sama dua kali berturut-turut.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak