Sobes.tech
Junior

Jaký typ typizace je v Pythonu: statický nebo dynamický?

sobes.tech AI

Odpověď od AI

Dynamické, ale s prvky statického typování díky anotacím typů.

V dynamickém typování je typ proměnné určen během běhu programu na základě přiřazené hodnoty.

# Dynamické typování: x může nabývat různých datových typů
x = 10  # int
x = "ahoj" # str

Od verze Python 3.5 byly přidány anotace typů (type hints), které umožňují uvést očekávaný typ proměnné, argumentu funkce nebo návratové hodnoty. To Pythonu nezpůsobí, že je staticky typovaný jazyk v klasickém smyslu, ale umožňuje používat statické analyzátory kódu (například mypy) k ověření typů před spuštěním programu.

# Anotace typů
def greet(name: str) -> str:
    return f"Ahoj, {name}"

věk: int = 30

Hlavní rozdíly mezi dynamickým a statickým typováním:

Charakteristika Dynamické typování Statické typování
Definice typů Během běhu programu Během kompilace
Kontrola chyb typů Během běhu programu Během kompilace
Flexibilita Vyšší Nižší
Výkon Může být nižší (kvůli kontrolám při běhu) Obvykle vyšší (typu jsou známy předem)

Navzdory anotacím zůstává Python dynamicky typovaným jazykem, protože kontrola typů během běhu stále probíhá, a je možné přiřadit proměnné hodnotu jiného typu, i když byla použita syntaktická anotace. Anotace slouží ke zlepšení čitelnosti kódu, usnadnění ladění a používání nástrojů pro statickou analýzu.