← Все вопросы

Что такое аннотации типов (type hints) и обязательны ли они?

Задан 20 дней назад1к просмотров3 ответа
15

Вижу в чужом коде такое: def add(a: int, b: int) -> int:. Что значат эти двоеточия и стрелка? Это что-то меняет в работе программы и надо ли мне их писать?

3 ответа

26
✓ Принятый ответ — помог автору

Это аннотации типов (type hints): подсказка, что a и b — числа (int), а функция возвращает int (то, что после ->).

Ключевой момент: Python их не проверяет и не приводит типы. Можно передать строки — никакой ошибки не будет, аннотация просто проигнорируется в рантайме. Это документация для людей и для инструментов.

def add(a: int, b: int) -> int:
    return a + b

add('x', 'y')  # вернёт 'xy', аннотации не помешают

Обязательны ли? Нет, чисто опционально. Но они здорово помогают: IDE подсказывает методы, а статические анализаторы вроде mypy ловят ошибки типов до запуска. На больших проектах — почти стандарт, для маленьких скриптов можно не заморачиваться.

Стахей Стреха то есть это для красоты и подсказок, а не для проверки. понял! · 14 дней назад
Эльвира Козлова в новых проектах реально удобно, IDE начинает помогать сильно лучше · 11 дней назад
9

Подсказки типов. Необязательны, Python их в рантайме игнорирует.

3

Не обязательны.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект