Sobes.tech
Junior

Milyen típusú típusosítás van Pythonban: statikus vagy dinamikus?

sobes.tech MI

Válasz az MI-től

Dinamikus, de típusmegjelölésekkel statikus elemekkel.

Dinamikus típusozás esetén a változó típusa a hozzárendelt érték alapján kerül meghatározásra a program futtatása során.

# Dinamikus típusozás: x különböző adattípusokat vehet fel
x = 10  # int
x = "szia" # str

A Python 3.5-ös verziójától kezdve típusmegjelöléseket (type hints) adtak hozzá, amelyek lehetővé teszik a változó, függvényargumentum vagy visszatérési érték várt típusának megadását. Ez nem teszi a Pythont klasszikus értelemben vett statikusan típusos nyelvvé, de lehetővé teszi statikus kódelemzők (pl. mypy) használatát a típusok ellenőrzésére a program futtatása előtt.

# Típusmegjelölések
def greet(name: str) -> str:
    return f"Szia, {name}"

kor: int = 30

A dinamikus és statikus típusozás közötti fő különbségek:

Jellemző Dinamikus típusozás Statikus típusozás
Típusdefiníció A futás során A fordítás során
Hibák ellenőrzése A futás során A fordítás során
Rugalmasság Magasabb Alacsonyabb
Teljesítmény Lehet alacsonyabb (a ellenőrzések miatt futás közben) Általában magasabb (a típusok előre ismertek)

A típusmegjelölések ellenére a Python továbbra is dinamikus típusú nyelv marad, mivel a típusellenőrzés futás közben továbbra is megtörténik, és egy változónak más típusú értéket is lehet adni, még akkor is, ha szintaktikai megjelölés volt. A megjelölések a kód olvashatóságának javítására, a hibakeresés megkönnyítésére és statikus elemző eszközök használatára szolgálnak.