Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Lokal, Global och Icke-lokal Variabelräckvidd | Variabelns Räckvidd, Nästlade Funktioner och Slutna Funktioner
Funktionella Programmeringskoncept i Python

bookLokal, Global och Icke-lokal Variabelräckvidd

Svep för att visa menyn

Att förstå hur Python bestämmer variabelns räckvidd är avgörande för att skriva tydlig och felfri kod. Python använder en specifik uppsättning regler, känd som LEGB-regeln, för att avgöra var den ska leta efter värdet av en variabel. LEGB står för Local, Enclosing, Global och Built-in. När du refererar till en variabel söker Python efter dess värde i denna ordning:

  • Local: variabler definierade inom den aktuella funktionen eller metoden;
  • Enclosing: variabler i den närmaste omgivande funktionsräckvidden (om du använder nästlade funktioner);
  • Global: variabler definierade på modulens toppnivå eller deklarerade som global med nyckelordet global;
  • Built-in: namn som är fördefinierade i Python, såsom len eller range.

Denna regel gör att Python kan lösa variabelnamn effektivt och hjälper dig att förutse varifrån en variabels värde kommer. Ibland kan du vilja ändra variabler utanför den aktuella funktionens räckvidd. Python tillhandahåller två nyckelord för detta: global och nonlocal. Nyckelordet global låter dig tilldela ett värde till en variabel på modulnivå, medan nonlocal gör det möjligt att ändra en variabel i den närmaste omgivande funktionsräckvidden som inte är global.

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
  • Variabeln global_var är definierad i det globala omfånget och är tillgänglig från hela modulen;
  • Inuti funktionen outer skapas enclosing_var som en omslutande variabel som kan nås av nästlade funktioner;
  • Den nästlade funktionen inner definierar local_var, som endast existerar inom den funktionen och visar åtkomst till variabler från alla omslutande omfång;
  • Funktionen len används för att visa hur Python kan komma åt namn från det inbyggda omfånget.

Detta visar hur Python hittar variabelvärden genom att söka igenom lokalt, omslutande, globalt och inbyggt omfång i den ordningen, vilket gör variabelupplösning förutsägbar och organiserad.

1. Vad gör nyckelordet nonlocal i Python?

2. Vad är LEGB-regeln?

question mark

Vad gör nyckelordet nonlocal i Python?

Vänligen välj det korrekta svaret

question mark

Vad är LEGB-regeln?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 3. Kapitel 1
some-alt