Лень vs Аннотация типов в Python
3:1
По плану сегодня хотел немного порассуждать на тему аннотации типов (type hints) в Python. Питонистов среди нас немало, но, все-таки, не все. Так что, возможно, сдвинем фокус на вообще языки с динамической типизацией. Посмотрим)
Сама идея использования аннотации типов в Python поначалу многими была встречена не очень однозначно: язык с динамической типизацией, к чему ему это? Да и вообще, у нас и так очень простой синтаксис, нечего его загромождать всяким капитанством.
Некоторые мои коллеги на полном серьезе так и думали. А кое-кто делает это до сих пор) Кстати, прямо сейчас пишу эти строки, смотрю на голосование и вижу, что из 50, пока, проголосовавших ни один не выбрал пункт "Не нужно", и откровенно радуюсь :)
Основной довод противников был в том, что явное указание типов посягает на святую святых - динамическую типизацию. Чтобы убедить всех в обратном авторы PEP 484 пошли на достаточно интересный шаг.
Так, документ получил своего рода преамбулу, гласяющую, что Python останется языком с динамической типизацией, и авторы не планируют придавать обязательный характер аннотации типов. Даже в рамках соглашений. Думаю, это многих успокоило)
И вот, аннотация типов у нас присутствует. Но, даже если мы ее и используем, проверка согласования типов интерпретатором не осуществляется. Для этого надо использовать сторонние инструменты. Тот же Mypy, к примеру. Однако и он работает для нас, а не для интерпретатора.
Можно абсолютно смело объявлять типы, писать там всякую фигню, и это ни на что не повлияет. Свобода...
Сергей Нагаев