Mediumtype-hints
Что такое type hints (аннотации типов)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Type hints (Python 3.5+, PEP 484) — опциональные аннотации типов для статической проверки (mypy, pyright). Не влияют на runtime.
def greet(name: str) -> str:
return 'Hello, ' + name
x: int = 5
names: list[str] = [] # Python 3.9+
scores: dict[str, int] = {}
from typing import Optional, Callable, TypedDict, Literal
def find(key: str) -> Optional[int]: # int | None в 3.10+
...
handler: Callable[[int], str] = lambda x: str(x)
class UserDict(TypedDict):
name: str
age: int
mode: Literal['r', 'w', 'a'] = 'r'- Gradual typing — можно аннотировать часть кода, остальные
Any; typing.cast(T, x)— runtime no-op, для type checker;typing.overload— multiple signatures;- dataclass, pydantic — используют аннотации для валидации и codegen.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.