Вопрос34
Осталось:

Что такое аннотации типов в Python?

Образцовый ответ

Показывать ответ по умолчанию

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

Базовый синтаксис:

def greet(name: str) -> str:
    return f"Привет, {name}!"

age: int = 25
price: float = 19.99
is_active: bool = True

Коллекции:

# Python 3.9+
def process(items: list[str]) -> dict[str, int]:
    return {item: len(item) for item in items}

# Вложенные типы
matrix: list[list[int]] = [[1, 2], [3, 4]]

Модуль typing:

from typing import Optional, Union

# Может быть str или None
def find_user(user_id: int) -> Optional[str]:
    if user_id == 1:
        return "Анна"
    return None

# Может быть int или str
def parse(value: Union[int, str]) -> str:
    return str(value)

Зачем нужны аннотации:

  • Документация: тип ясен без чтения тела функции.
  • IDE: автодополнение и подсказки работают лучше.
  • Поиск ошибок: инструменты вроде mypy находят ошибки типов до запуска кода.
  • Командная работа: упрощают понимание кода другими разработчиками.

Важно:

Аннотации — это подсказки, а не ограничения. Python не проверяет типы во время выполнения:

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

add("hello", " world")  # Сработает без ошибки: "hello world"