2. Основы аннотации типов#

Аннотация типов - это дополнительное описание в классах, функциях, переменных, которое указывает какой тип данных должен быть в этом месте.

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

Примечание

Аннотация типов добавлялась постепенно в Python 3.x. Начиная с версии Python 3.0 была доступна аннотация функций, а в Python 3.6 была добавлена аннотация для переменных.

Преимущества:

  • при создании объектов сразу описаны типы данных

  • можно проверять правильность указанных типов с помощью отдельных модулей

  • IDE могут делать подсказки, указывать на ошибки на основании аннотации типов

Нюансы:

  • как и с тестами, надо потратить время на написание аннотаций (хотя есть софт, который может в этом помочь)

  • на данный момент, надо делать довольно большое количество импортов

  • желательно использовать Python 3.6+ чтобы были доступны все возможности, в идеале, последнюю версию Python.