🧠 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.

binoculars

❗ 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 variabele binnen 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 variabele buiten ook steeds gebruiken buiten de functie. Je kan de variabele binnen enkel gebruiken binnen de functie, waar je ze ook kan aanpassen.