⊗pyPmFnNl 21 of 129 menu

Nonlocal instrukcija Python

Ir gadījumi, kad ārējā funkcijā ir mainīgais, kuram nepieciešams piekļūt iekšējā funkcijā. Deklarēsim funkcijā outer mainīgo i. Attiecībā pret iekšējo funkciju šis mainīgais būs ārējais (globālie ir mainīgie, kas deklarēti TIKAI ārējā kodā). Un funkcijai inner iestatīsim vieninieka pievienošanu i:

def outer(): i = 0 def inner(): i += 1 # izvadīs [4, 9, 25] inner() return i

Tomēr priekš inner mainīgais i ir lokāls, Python to uzskata par nedeklarētu un izvada atbilstošo kļūdu. Agrāk šāda kļūda tika labota ar global instrukcijas palīdzību. Tomēr šeit i ir ārējais mainīgais, tāpēc jāizmanto instrukcija nonlocal. Tā ņem uzskaitītos mainīgo nosaukumus tuvākajā redzamības apgabalā, izslēdzot globālo, t.i., i iekšpus inner tiks ņemta no mainīgā, deklarēta augstāk par šo funkciju:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # izvadīs 1

Nākamajā kodā kāds programmētājs pieļāva kļūdu:

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

Kas ir nepareizs ar šo kodu? Atrodiet un izlabojiet koda autora kļūdu.

Nākamajā kodā kāds programmētājs pieļāva kļūdu:

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

Kas ir nepareizs ar šo kodu? Atrodiet un izlabojiet koda autora kļūdu.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt