Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Bereik van Lokale, Globale en Niet-lokale Variabelen | Variabele Scope, Geneste Functies en Closures
Functionele Programmeerconcepten in Python

bookBereik van Lokale, Globale en Niet-lokale Variabelen

Veeg om het menu te tonen

Begrijpen hoe Python het bereik van variabelen bepaalt, is essentieel voor het schrijven van duidelijke en foutloze code. Python gebruikt een specifieke set regels, bekend als de LEGB-regel, om te bepalen waar het de waarde van een variabele moet zoeken. LEGB staat voor Local, Enclosing, Global en Built-in. Wanneer je naar een variabele verwijst, zoekt Python de waarde in deze volgorde:

  • Local: variabelen gedefinieerd binnen de huidige functie of methode;
  • Enclosing: variabelen in de dichtstbijzijnde omsluitende functiebereik (bij gebruik van geneste functies);
  • Global: variabelen gedefinieerd op het hoogste niveau van de module of gedeclareerd als global met het global sleutelwoord;
  • Built-in: namen die vooraf zijn toegewezen in Python, zoals len of range.

Deze regel stelt Python in staat om variabelen efficiënt te vinden en helpt je te voorspellen waar de waarde van een variabele vandaan zal komen. Soms wil je variabelen buiten het bereik van de huidige functie aanpassen. Python biedt hiervoor twee sleutelwoorden: global en nonlocal. Het global sleutelwoord maakt het mogelijk om een waarde toe te wijzen aan een variabele op module-niveau, terwijl nonlocal het mogelijk maakt om een variabele aan te passen in het dichtstbijzijnde omsluitende functiebereik dat niet globaal is.

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
  • De variabele global_var is gedefinieerd in de globale scope en is overal in de module toegankelijk;
  • Binnen de functie outer creëert enclosing_var een variabele in de omsluitende scope die toegankelijk is voor geneste functies;
  • De geneste functie inner definieert local_var, die alleen binnen die functie bestaat en laat zien dat variabelen uit alle omsluitende scopes toegankelijk zijn;
  • De functie len wordt gebruikt om te laten zien hoe Python namen uit de ingebouwde scope kan benaderen.

Dit toont aan hoe Python variabelewaarden vindt door achtereenvolgens te zoeken in de lokale, omsluitende, globale en ingebouwde scopes, waardoor variabelen op een voorspelbare en georganiseerde manier worden opgelost.

1. Wat doet het nonlocal sleutelwoord in Python?

2. Wat is de LEGB-regel?

question mark

Wat doet het nonlocal sleutelwoord in Python?

Selecteer het correcte antwoord

question mark

Wat is de LEGB-regel?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 1
some-alt