На этом шаге мы рассмотрим назначение и определение аннотаций.
В Python 3 функции могут содержать аннотации, которые вводят новый способ документирования. Теперь в заголовке функции допускается указывать предназначение каждого параметра, данные какого типа он может принимать, а также тип возвращаемого функцией значения. Аннотации имеют следующий формат:
def <Имя функции>(
[<Параметр1> [: <Выражение>] [= <Значение по умолчанию>][, ...,
<ПараметрN> [: <Выражение>] [= <Значение по умолчанию>] ] ]
) -> <Возвращаемое значение>:
<Тело функции>
В параметрах <Выражение> и <Возвращаемое значение> можно указать любое допустимое выражение языка Python. Это выражение будет выполнено при создании функции. Пример указания аннотаций:
def func(a: "Параметр1", b: 10 + 5 = 3) -> None: print(a, b)
В этом примере для переменной a создано описание "Параметр1". Для переменной b выражение 10 + 5 является описанием, а число 3 - значением параметра по умолчанию. Кроме того, после закрывающей круглой скобки указан тип возвращаемого функцией значения: None. После создания функции все выражения будут выполнены, и результаты сохранятся в виде словаря в атрибуте __annotations__ объекта функции, Для примера выведем значение этого атрибута:
>>> def func(a: "Пример1", b: 10 + 5 = 3) -> None: pass >>> func.__annotations__ {'a': 'Пример1', 'b': 15, 'return': None}
Со следующего шага мы начнем рассматривать модули и пакеты.