🧠 Denkoefening - Wie ben ik?
Kijk naar het volgende codevoorbeeld:
ik = 'Anna' def naam(ik): ik = 'Bob' print('Mijn naam is ' + ik) naam('Charlotte')
Welke naam denk je dat er geprint wordt?
In het vorige voorbeeld wordt de variabele ik
meerdere keren gedefinieerd. Toch heeft de variabele ik
maar één waarde wanneer ze in de print
-functie gebruikt wordt. Dat komt omdat elke variabele een bereik heeft, de zogenaamde scope. We noemen variabelen die een bepaald bereik hebben lokale variabelen. In Python zijn alle variabelen lokaal, tenzij anders aangeduid.
❗ Begrip - Bereik van een variabele
Het bereik van een variabele, ook vaak scope genoemd, is het deel van de code in een computerprogramma waar die variabele gedefinieerd is.
In functies is het gebruik van variabelen erg interessant. Alle variabelen zijn lokaal gedefinieerd in de functie. Dit betekent dus dat ze, net zoals de parameters van de functie, niet buiten de functie gebruikt kunnen worden.
Variabelen die buiten de functie gedefinieerd zijn, kunnen ook binnen de functie gebruikt worden, zolang er geen andere variabele binnen de functie is met dezelfde naam.
👀 Voorbeeld - Binnen en buiten
Bekijk het volgende stukje code. We definiëren een variabele
buiten
buiten de functie, en een variabelebinnen
binnen de functie.buiten = 'buiten' def functie(): binnen = 'binnen' print(buiten) print(binnen) # DIT KAN NIET: # buiten = 'tafel' functie() print(buiten) # DIT KAN NIET: # print(binnen)
Je kan de variabele
buiten
gebruiken binnen de functie, maar niet aanpassen. Je kan de variabelebuiten
ook steeds gebruiken buiten de functie. Je kan de variabele binnen enkel gebruikenbinnen
de functie, waar je ze ook kan aanpassen.