Долго не писал типы — «лишняя возня». Однажды вернулся к функции, что возвращает то число, то None, и затупил, что с ним делать. Аннотации оказались не украшением, а договором о контракте функции. Когда добавил `-> int | None`, сразу стало ясно и меньше мест для ошибок.
Нейтрально: type hints — самодокументация и ранняя ловля ошибок анализатором, не «замедление».
def parse_price(raw: str | None) -> int | None:
if not raw:
return None
try:
return int(float(raw))
except ValueError:
return None
# вызывающий сразу понимает: может быть число или None
За вечер типизировал пару функций и почувствовал уверенность: код «разговаривает» через типы. Притыкает у интервью про аннотации — теперь могу объяснить зачем, а не «модно».