⊗pyPmFnNl 21 of 129 menu

Navodila nonlocal v Pythonu

Zgodi se, da je v zunanji funkciji spremenljivka, do katere želimo dostopati v notranji funkciji. V funkciji outer deklarirajmo spremenljivko i. Za notranjo funkcijo bo ta spremenljivka zunanja (globalne so le spremenljivke, deklarirane SAMO v zunanji kodi). Funkciji inner pa dodelimo prištevanje k i ena:

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

Vendar je za inner spremenljivka i lokalna, Python jo obravnava kot nedeclarirano in izpiše ustrezno napako. V preteklosti so takšno napako popravili z uporabo navodila global. Vendar tukaj je i zunanja spremenljivka, zato je treba uporabiti navodilo nonlocal. Vzame našteta imena spremenljivk v najbližji obseg vidnosti, izključujoč globalni, tj. i znotraj inner bo vzeta iz spremenljivke, deklarirane nad to funkcijo:

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

V naslednji kodi je nek programer naredil napako:

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

Kaj je narobe s to kodo? Poiščite in popravite avtorjevo napako.

V naslednji kodi je nek programer naredil napako:

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

Kaj je narobe s to kodo? Poiščite in popravite avtorjevo napako.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni