⊗pyPmFnCl 23 of 129 menu

Penutupan dalam Python

Yang dimaksud dengan penutupan (closure) adalah sebuah fungsi beserta semua variabel eksternal yang dapat diaksesnya.

Dalam Python, seringkali ketika menyebut "penutupan fungsi", yang dimaksud bukanlah fungsi itu sendiri, melainkan variabel eksternalnya.

Misalkan kita memiliki fungsi outer berikut, di mana variabel i dideklarasikan dan fungsi internal inner. Di dalamnya, i akan ditambah satu. Agar variabel i bekerja dengan benar, tambahkan pernyataan nonlocal padanya:

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

Sekarang mari kita letakkan fungsi eksternal ke dalam variabel res dan panggil dengan tanda kurung:

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

Mari kita panggil res beberapa kali. Setelah kode dijalankan, setiap kali penghitung i akan bertambah satu:

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

Namun, ada nuansa penting di sini - setiap pemanggilan fungsi outer akan menambah penghitungnya sendiri. Mari kita letakkan pemanggilan pertama outer ke dalam variabel res1, dan pemanggilan kedua - ke dalam variabel res2. Kemudian tampilkan secara berurutan ke konsol:

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

Berikut adalah kode yang diberikan:

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

Jelaskan apa yang akan ditampilkan di konsol.

Buatlah sebuah fungsi, yang setiap pemanggilannya akan menghasilkan bilangan Fibonacci berikutnya.

Buatlah sebuah fungsi yang akan menghasilkan bilangan bulat acak dalam suatu rentang, tetapi dengan ketentuan tidak boleh ada angka yang sama dua kali berturut-turut.

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