Python Glossary English

Python 3.9+Аннотации и typingпонятие

int / str / list / dict (аннотации)

встроенные

С Python 3.9+ встроенные типы используются как обобщения напрямую: list[int], dict[str, int]. Ранее нужен был typing.List, typing.Dict.

Синтаксис

x: int = 5
s: str = 'hi'
items: list[int] = [1, 2, 3]
mapping: dict[str, int] = {'a': 1}

Интерпретатор аннотации не проверяет: функция, объявленная как принимающая list[int], без единого возражения примет список строк — расхождение найдёт только mypy или похожий анализатор. Тип указывается один на весь контейнер, поэтому для разнородных данных берут union или tuple с фиксированными типами по позициям. typing.List и typing.Dict формально устарели с 3.9 и живут только ради совместимости со старым кодом.

Примеры

def greet(name: str) -> str:
    return f'Hello, {name}!'
print(greet('Alice'))  # → Hello, Alice!
def total(nums: list[int]) -> int:
    return sum(nums)
print(total([1, 2, 3]))  # → 6
coords: tuple[float, float] = (1.0, 2.0)  # → аннотация кортежа
matrix: list[list[int]] = [[1, 2], [3, 4]]  # → вложенные типы

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности