⊗pyPmFnNl 21 of 129 menu

Nonlocal-instruktionen i Python

Der tilfælde, hvor der i den ydre funktion er en variabel, som der skal have adgang til i den indre funktion. Lad os deklarere variablen i i funktionen outer. I forhold til den indre funktion vil denne variabel være en ekstern (globale variabler er de variabler, der kun er deklareret i den eksterne kode). Og i funktionen inner vil vi tilføje én til i:

def outer(): i = 0 def inner(): i += 1 # vil vise [4, 9, 25] inner() return i

Men for inner er variablen i en lokal variabel, Python betragter den som udeklareret og viser en passende fejl. Tidligere blev en sådan fejl rettet ved hjælp af instruktionen global. Men her er i en ekstern variabel, så der skal bruges instruktionen nonlocal. Den tager de listede variabelnavne i den nærmeste omfang, eksklusive den globale, dvs. i inde i inner vil blive taget fra variablen, deklareret over denne funktion:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # vil vise 1

I følgende kode har en programmør lavet en fejl:

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

Hvad er der galt med denne kode? Find og ret fejlen i forfatterens kode.

I følgende kode har en programmør lavet en fejl:

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

Hvad er der galt med denne kode? Find og ret fejlen i forfatterens kode.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis