⊗pyPmFnNl 21 of 129 menu

Nonlocal instrukcija u Pythonu

Ponekad postoji situacija kada u spoljašnjoj funkciji postoji promenljiva kojoj je potreban pristup iz unutrašnje funkcije. Deklarišimo u funkciji outer promenljivu i. U odnosu na unutrašnju funkciju ova promenljiva će biti spoljašnja (globalne su promenljive deklarisane SAMO u spoljašnjem kodu). Funkciji inner dodelimo dodavanje jedinice na i:

def outer(): i = 0 def inner(): i += 1 # ispisati će [4, 9, 25] inner() return i

Međutim, za inner promenljiva i je lokalna, Python je smatra nedeklarisanom i prikazuje odgovarajuću grešku. Ranije se ovakva greška ispravljala pomoću instrukcije global. Međutim ovde i je spoljašnja promenljiva, pa treba koristiti instrukciju nonlocal. Ona uzima imenovane promenljive iz najbližeg opsega vidljivosti, isključujući globalni, tj. i unutar inner će biti uzeta iz promenljive, deklarisane iznad ove funkcije:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # ispisati će 1

U sledećem kodu jedan programer je napravio grešku:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

Šta nije u redu sa ovim kodom? Pronađite i ispravite grešku autora koda.

U sledećem kodu jedan programer je napravio grešku:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

Šta nije u redu sa ovim kodom? Pronađite i ispravite grešku autora koda.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij