Wat voor type typing is er in Python: statisch of dynamisch?
sobes.tech AI
Antwoord van AI
Dynamisch, maar met statische elementen dankzij type hints.
In dynamische typing wordt het type van een variabele tijdens de uitvoering bepaald op basis van de waarde die eraan wordt toegewezen.
# Dynamische typing: x kan verschillende datatypes aannemen
x = 10 # int
x = "hallo" # str
Vanaf Python 3.5 zijn type hints toegevoegd, waarmee het verwachte type van een variabele, functieargument of returnwaarde kan worden aangegeven. Dit maakt Python niet tot een statisch getypeerde taal in de klassieke zin, maar het stelt je in staat statische analysetools (bijvoorbeeld mypy) te gebruiken om de types vóór het uitvoeren te controleren.
# Type hints
def greet(name: str) -> str:
return f"Hallo, {name}"
leeftijd: int = 30
Belangrijkste verschillen tussen dynamisch en statisch typen:
| Kenmerk | Dynamisch typen | Statisch typen |
|---|---|---|
| Type-definitie | Tijdens uitvoering | Tijdens compilatie |
| Foutcontrole | Tijdens uitvoering | Tijdens compilatie |
| Flexibiliteit | Groter | Kleiner |
| Prestaties | Kan lager zijn (door controles tijdens uitvoering) | Over het algemeen hoger (types zijn vooraf bekend) |
Ondanks type hints blijft Python een dynamisch getypeerde taal, omdat typecontroles nog steeds plaatsvinden tijdens de uitvoering, en je een variabele een waarde van een ander type kunt geven, zelfs als er een syntactische annotatie is. Annotaties dienen om de leesbaarheid van de code te verbeteren, debugging te vergemakkelijken en statische analysetools te gebruiken.