Типы определяются в сигнатуре параметра и возвращаемом значении.
Пример
def process_users(users: list[dict[str, object]]) -> list[str]:
return [str(user["name"]) for user in users if bool(user.get("active"))]
Разбор
Преимущества:
- лучший опыт разработчиков с автозаполнением и навигацией;
- статическая проверка в CI;
- явный контракт для других разработчиков.
Суммируя:
- Введите аннотации, документирующие API.
- Они снижают риск ошибок интеграции.
- Они обеспечивают наибольшую ценность в средних и больших базах кода.
Итог
Типы определяются в сигнатуре параметра и возвращаемом значении.