Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Lokalt, globalt og ikke-lokalt variabelområde | Variabelomfang, Nøstede Funksjoner og Lukkinger
Funksjonelle Programmeringskonsepter i Python

bookLokalt, globalt og ikke-lokalt variabelområde

Sveip for å vise menyen

Å forstå hvordan Python bestemmer variabelens omfang er avgjørende for å skrive tydelig og feilfri kode. Python bruker et spesifikt sett med regler, kjent som LEGB-regelen, for å avgjøre hvor den skal lete etter verdien til en variabel. LEGB står for Local, Enclosing, Global og Built-in. Når du refererer til en variabel, søker Python etter verdien i denne rekkefølgen:

  • Local: variabler definert i den nåværende funksjonen eller metoden;
  • Enclosing: variabler i nærmeste omsluttende funksjonsomfang (hvis du bruker nestede funksjoner);
  • Global: variabler definert på toppnivå i modulen eller erklært global med global-nøkkelordet;
  • Built-in: navn som er forhåndsdefinert i Python, som len eller range.

Denne regelen gjør at Python kan løse variabelnavn effektivt og hjelper deg å forutsi hvor en variabels verdi kommer fra. Noen ganger kan det være ønskelig å endre variabler utenfor den nåværende funksjonens omfang. Python tilbyr to nøkkelord for dette: global og nonlocal. global-nøkkelordet lar deg tilordne en verdi til en variabel på modulnivå, mens nonlocal gjør det mulig å endre en variabel i nærmeste omsluttende funksjonsomfang som ikke er globalt.

123456789101112131415161718
# Global scope global_var = "I am global" def outer(): # Enclosing scope enclosing_var = "I am enclosing" def inner(): # Local scope local_var = "I am local" print("Local:", local_var) print("Enclosing:", enclosing_var) # Found in enclosing scope print("Global:", global_var) # Found in global scope print("Built-in:", len([1, 2, 3])) # 'len' comes from built-in scope inner() outer()
copy
  • Variabelen global_var er definert i globalt omfang og er tilgjengelig fra hvor som helst i modulen;
  • Inne i funksjonen outer opprettes enclosing_var som en variabel i det omsluttende omfanget, og kan nås av nestede funksjoner;
  • Den nestede funksjonen inner definerer local_var, som kun eksisterer innenfor denne funksjonen og viser tilgang til variabler fra alle omsluttende omfang;
  • Funksjonen len brukes for å vise hvordan Python kan få tilgang til navn fra det innebygde omfanget.

Dette viser hvordan Python finner verdier for variabler ved å søke gjennom lokale, omsluttende, globale og innebygde omfang i den rekkefølgen, noe som gjør variabeloppløsning forutsigbar og organisert.

1. Hva gjør nøkkelordet nonlocal i Python?

2. Hva er LEGB-regelen?

question mark

Hva gjør nøkkelordet nonlocal i Python?

Velg det helt riktige svaret

question mark

Hva er LEGB-regelen?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 1
some-alt