⊗pyPmFnNl 21 of 129 menu

Příkaz nonlocal v Pythonu

Nastávají případy, kdy ve vnější funkci je proměnná, ke které je potřeba získat přístup ve vnitřní funkci. Deklarujme ve funkci outer proměnnou i. Ve vztahu k vnitřní funkci bude tato proměnná vnější (globálními jsou proměnné deklarované POUZE ve vnějším kódu). A funkci inner nastavme přičtení k i jedničku:

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

Avšak pro inner je proměnná i lokální, Python ji považuje za nedeklarovanou a vypisuje odpovídající chybu. Dříve se podobná chyba opravovala pomocí příkazu global. Avšak zde je i vnější proměnná, proto je třeba použít příkaz nonlocal. Ten bere uvedené názvy proměnných z nejbližšího rozsahu viditelnosti, kromě globálního, tj. i uvnitř inner bude brána z proměnné, deklarované výše než tato funkce:

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

V následujícím kódu nějaký programátor udělal chybu:

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

Co je špatně s tímto kódem? Najděte a opravte chybu autora kódu.

V následujícím kódu nějaký programátor udělal chybu:

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

Co je špatně s tímto kódem? Najděte a opravte chybu autora kódu.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout