Python: tür ipuçları (type hints) ve mypy
Kısaca: Tür ipuçları (tür açıklamaları), parametrelerin, dönüş değerlerinin ve değişkenlerin beklenen türlerini Python koduna yazar. Python bunları zorlamaz, ama mypy gibi araçlar ve editörler denetler.
Biraz daha ayrıntılı: Python dinamik türlü kalır. İpuçları insanlara ve araçlara hizmet eder: daha iyi otomatik tamamlama, erken hata iletileri, daha okunaklı arayüzler.
Ayrıntılı
- Temel biçim:
def fiyat(net: float, vergi: float = 0.19) -> float:vead: str = "Anna". - Kapsayıcılar:
list[int],dict[str, float],tuple[int, str],set[str](Python 3.9’dan itibaren doğrudan, öncesindetyping.Listvb.). - Optional ve birleşim:
str | None(3.10’dan) veyaOptional[str]. Şunu söyler:Noneolabilir, bu yüzden kullanmadan önce denetle. - Diğerleri: İşlevler için
Callable[ [int], str ], sabit anahtarlı sözlükler içinTypedDict, yapısal arayüzler içinProtocol(denetimli “ördek tiplemesi”), kaçış kapısı olarakAny. - mypy:
mypy dosya.pyipuçlarını statik olarak denetler ve çelişkileri bildirir; örneğinintyerinestrgeçmek. Alternatifler: pyright (Pylance’ta), pytype. - Kademeli: Tek tek dosyaları veya işlevleri açıklayabilirsin. Açıklanmamış koda hoşgörüyle davranılır.
- Çalışma zamanı: Pydantic veya FastAPI gibi kütüphaneler ipuçlarını okur ve girdileri doğrular.
- Sınır: İpuçları çalışma zamanında hiçbir şeyi garanti etmez.
Ayrıca bak: Tür sistemleri ve tür çıkarımı, Linter, biçimlendirici ve tür denetleyiciler