Sobes.tech
Junior

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.