⊗pyPmFnNl 21 of 129 menu

nonlocal-instruksjonen i Python

Det hender at det i en ytre funksjon finnes en variabel som trengs tilgang til i den indre funksjonen. La oss deklarere variabelen i i funksjonen outer. I forhold til den indre funksjonen vil denne variabelen være en ekstern (globale variabler er kun de som er deklarert i den ytre koden). Og la oss gi funksjonen inner oppgaven med å legge til én på i:

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

Men for inner er variabelen i en lokal variabel, Python anser den som udeklarert og viser en tilhørende feil. Tidligere ble en slik feil rettet ved hjelp av instruksjonen global. Men her er i en ekstern variabel, så vi bør bruke instruksjonen nonlocal. Den tar de opplistede variabelnavnene i nærmeste omfang synlighet, unntatt den globale, dvs. i inni inner vil bli tatt fra variabelen deklarert over denne funksjonen:

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

I følgende kode har en programmerer gjort en feil:

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

Hva er galt med denne koden? Finn og rett feilen forfatteren av koden har gjort.

I følgende kode har en programmerer gjort en feil:

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

Hva er galt med denne koden? Finn og rett feilen forfatteren av koden har gjort.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis