Аннотирование типов в Python
Аннотирование типов в Python позволяет указывать, какие типы данных ожидаются в функциях и переменных. Это не влияет на выполнение программы, но улучшает читаемость кода и позволяет использовать инструменты статического анализа для обнаружения ошибок.
Аннотирование типов переменных
Вы можете указать тип данных переменной с помощью двоеточия :
.
Пример:
В этом примере переменные age
, name
и is_student
аннотированы как типы int
, str
и bool
соответственно.
Аннотирование типов функций
Для аннотирования типов параметров функции и ее возвращаемого значения используется следующий синтаксис:
Синтаксис:
Пример:
Здесь функция greet()
принимает строку name
и возвращает строку, а функция add()
принимает два целых числа и возвращает целое число.
Аннотации для сложных типов
Python поддерживает аннотирование сложных типов, таких как списки, словари, кортежи и прочее. Для этого используется модуль typing
, который предоставляет различные специальные типы.
Пример:
Здесь:
List[int]
обозначает список целых чисел.Dict[str, str]
обозначает словарь, где ключи и значения — строки.Tuple[float, float]
обозначает кортеж с двумя числами с плавающей точкой.
Аннотирование функций с переменным числом аргументов
Вы можете аннотировать функции с переменным числом аргументов, используя *args
и **kwargs
.
Пример:
Здесь *args: int
означает, что функция принимает произвольное количество целых чисел в качестве позиционных аргументов, а **kwargs: Any
— произвольное количество именованных аргументов любого типа.
Аннотирование типов для функций, возвращающих None
None
Если функция ничего не возвращает (например, просто печатает что-то), это можно указать с помощью None
.
Пример:
Опциональные типы
Если параметр функции может принимать значение None
, это можно указать с помощью Optional
из модуля typing
.
Пример:
Здесь Optional[str]
означает, что name
может быть строкой или None
.
Аннотации для функций высшего порядка
Если функция принимает другую функцию в качестве аргумента или возвращает её, можно использовать Callable
.
Пример:
Здесь Callable[[int, int], int]
означает, что func
— это функция, принимающая два целых числа и возвращающая целое число.
Объявление собственных типов
Вы можете создавать именованные типы с помощью TypeAlias
(начиная с Python 3.10) или просто присваивая тип переменной.
Пример:
Заключение
Аннотирование типов в Python помогает повысить читаемость кода, облегчает его поддержку и позволяет использовать инструменты для статической проверки типов. Несмотря на то, что аннотации типов не обязательны и не выполняются во время выполнения программы, они служат важной частью современного Python-кода.
Last updated