Sobes.tech
Junior

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.