⊗pyPmFnNl 21 of 129 menu

Príkaz nonlocal v Pythone

Nastávajú prípady, keď vo vonkajšej funkcii je premenná, ku ktorej je potrebné získať prístup vo vnútornej funkcii. Deklarujme vo funkcii outer premennú i. Voči vnútornej funkcii bude táto premenná predstavovať vonkajšiu (globálnymi sú premenné deklarované LEN vo vonkajšom kóde). A funkcii inner nastavme pričítanie k i jednotku:

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

Avšak pre inner je premenná i lokálnou, Python ju považuje za nedeklarovanú a vypíše zodpovedajúcu chybu. Predtým sa takáto chyba riešila pomocou príkazu global. Avšak tu i je vonkajšou premennou, preto by sa mala použiť inštrukcia nonlocal. Tá vezme vymenované mená premenných do najbližšej oblasti viditeľnosti, s výnimkou globálnej, t.j. i vo vnútri inner bude braná z premennej, deklarovanej vyššie ako táto funkcia:

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

V nasledujúcom kóde nejaký programátor urobil chybu:

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

Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.

V nasledujúcom kóde nejaký programátor urobil chybu:

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

Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.

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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť