Ce face o adnotare de tip la rularea unui program Python
Ce fac adnotările de tip din Python la rulare și ce lasă în seama unui verificator static. Adnotările sunt expresii evaluate la momentul definirii și stocate într-un dicționar annotations, niciodată consultate când este apelată o funcție, deci o funcție adnotată să returneze float poate returna un str fără nicio eroare. Explică felul în care list[float] construiește un types.GenericAlias care poartă origin și args, citite înapoi de typing.getorigin și getargs, de ce isinstance ridică TypeError pe un generic parametrizat, în loc să plătească o parcurgere O(n) a elementelor, și de ce typing.Protocol cu runtimecheckable testează doar dacă există numele membrilor, lăsând un obiect cu o metodă având semnătură greșită să treacă de isinstance și apoi să pice la apel. Include cod rulabil și ieșire reală pentru fiecare, plus o rulare mypy peste aceleași greșeli, care arată compararea semnăturilor complete. Acoperă from future import annotations, gettypehints, TYPECHECKING, generarea câmpurilor de dataclass și Optional implicit.
Комментарии