Python-da hansı tip tipidir: statik və ya dinamik?
sobes.tech Süni İntellekt
AI-dan cavab
Dinamik, amma tipləmə göstəriciləri ilə statik elementlərə malikdir.
Dinamik tipləmədə, dəyişənin tipi ona təyin olunan dəyərə əsasən proqramın icrası zamanı müəyyən edilir.
# Dinamik tipləmə: x müxtəlif məlumat tiplərini qəbul edə bilər
x = 10 # int
x = "salam" # str
Python 3.5 versiyasından etibarən, tiplər üçün göstəricilər (type hints) əlavə olunub, bunlar dəyişənin, funksiyanın arqumentinin və ya geri dönüş dəyərinin gözlənilən tipini göstərməyə imkan verir. Bu, Python-u klassik mənada statik tiplənmiş dil etmir, amma mypy kimi statik kod analizatorlarından istifadə etməyə və tipləri proqram icrasından əvvəl yoxlamağa imkan verir.
# Tiplər üçün göstəricilər
def greet(name: str) -> str:
return f"Salam, {name}"
yaş: int = 30
Dinamik və statik tipləmə arasındakı əsas fərqlər:
| Xüsusiyyət | Dinamik tipləmə | Statik tipləmə |
|---|---|---|
| Tiplərin təyini | İcra zamanı | Tərtib zamanı |
| Xətaların yoxlanması | İcra zamanı | Tərtib zamanı |
| Əlverişlilik | Daha yüksək | Daha aşağı |
| Performans | Aşağı ola bilər (yoxlamalar səbəbindən) | Ümumiyyətlə daha yüksək (tiplər əvvəlcədən məlumdur) |
Annotasiyalara baxmayaraq, Python hələ də dinamik tiplənmiş dildir, çünki tiplərin yoxlanması icra zamanı davam edir və dəyişənə başqa tiplə dəyər vermək mümkündür, hətta sintaktik annotasiya olsa belə. Annotasiyalar kodun oxunaqlığını artırmaq, səhvləri tapmaq və statik analiz alətlərindən istifadə etmək üçün xidmət edir.