🔥

Тред (Сергей Нагаев)


Лень vs Аннотация типов в Python 3:1 По плану сегодня хотел немного порассуждать на тему аннотации типов (type hints) в Python. Питонистов среди нас немало, но, все-таки, не все. Так что, возможно, сдвинем фокус на вообще языки с динамической типизацией. Посмотрим)

Сама идея использования аннотации типов в Python поначалу многими была встречена не очень однозначно: язык с динамической типизацией, к чему ему это? Да и вообще, у нас и так очень простой синтаксис, нечего его загромождать всяким капитанством.

Некоторые мои коллеги на полном серьезе так и думали. А кое-кто делает это до сих пор) Кстати, прямо сейчас пишу эти строки, смотрю на голосование и вижу, что из 50, пока, проголосовавших ни один не выбрал пункт "Не нужно", и откровенно радуюсь :)

Основной довод противников был в том, что явное указание типов посягает на святую святых - динамическую типизацию. Чтобы убедить всех в обратном авторы PEP 484 пошли на достаточно интересный шаг.

Так, документ получил своего рода преамбулу, гласяющую, что Python останется языком с динамической типизацией, и авторы не планируют придавать обязательный характер аннотации типов. Даже в рамках соглашений. Думаю, это многих успокоило)

И вот, аннотация типов у нас присутствует. Но, даже если мы ее и используем, проверка согласования типов интерпретатором не осуществляется. Для этого надо использовать сторонние инструменты. Тот же Mypy, к примеру. Однако и он работает для нас, а не для интерпретатора.

Можно абсолютно смело объявлять типы, писать там всякую фигню, и это ни на что не повлияет. Свобода...

Сергей НагаевСергей Нагаев