Hoe zijn variabelen in Python opgebouwd?
Antwoord van AI
sobes.tech AI
Variabelen in Python zijn geen gegevenscontainers, maar eerder labels of namen die verwijzen naar objecten in het geheugen.
Wanneer je een waarde aan een variabele toewijst, kopieer je die waarde niet, maar maak je een verwijzing naar een bestaand of te creëren object.
Basisconcepten:
- Variabelenamen: Kunnen letters (latijns), cijfers en onderstreping bevatten. Ze mogen niet beginnen met een cijfer. Ze zijn hoofdlettergevoelig.
- Objecten: Alles in Python is een object. Elk object heeft een type, waarde en een identificator (adres in het geheugen).
- Verwijzingen: De variabele slaat een verwijzing op naar de identificator van het object.
Voorbeeld:
# Maak een int-object met waarde 100 en wijs de identificator toe aan 'a'
a = 100
# De variabele 'b' verwijst nu naar hetzelfde int-object met waarde 100
b = a
# Maak een nieuw int-object met waarde 200 en wijs de identificator toe aan 'a'
a = 200
In dit voorbeeld verwijst na a = 200 de variabele a naar het nieuwe object 200, terwijl de variabele b nog steeds verwijst naar het object 100.
- Dynamisch typen: Het type van de variabele wordt bepaald door het type van het object waarnaar het verwijst, en kan tijdens de uitvoering veranderen.
# De variabele 'x' verwijst naar een int-object
x = 10
# Nu verwijst de variabele 'x' naar een str-object
x = "hello"
-
Garbage collection: Wanneer er geen verwijzingen meer naar een object zijn, vrijgeeft Python automatisch het geheugen dat door dat object wordt ingenomen via het garbage collection-mechanisme.
-
Onveranderlijke (immutable) vs. veranderlijke (mutable) objecten:
- Onveranderlijk: Getallen, strings, tuples. Bij pogingen om zo'n object te "wijzigen", wordt in feite een nieuw object gemaakt.
- Veranderlijk: Lijsten, woordenboeken, verzamelingen. Hun inhoud kan worden gewijzigd zonder een nieuw object te maken.
# Onveranderlijk string-object
s = "world"
# Er wordt een nieuw string-object "hello world" gemaakt, 's' verwijst er nu naar
s = "hello " + s
# Veranderlijk lijst-object
l = [1, 2, 3]
# De inhoud van het bestaande lijst-object wordt gewijzigd
l.append(4)
Op deze manier zijn variabelen in Python flexibele en krachtige hulpmiddelen voor het werken met gegevens, gebaseerd op het concept van verwijzingen naar objecten.