Встречается на собеседованиях • сегодня

Какие знаешь особенности типизации в Python

Python использует динамическую типизацию — типы переменных определяются во время выполнения, а не компиляции. Однако с Python 3.5+ появилась поддержка аннотаций типов (type hints) через модуль typing, что позволяет статически проверять типы с помощью инструментов вроде mypy.

Ключевые особенности:

  1. Утиная типизация — объект считается подходящим, если реализует нужные методы/атрибуты, а не наследует от конкретного класса.
  2. Аннотации типов (необязательные, но полезные):
    python
    def greet(name: str) -> str:
        return f"Hello, {name}"
  3. Union и Optional:
    python
    from typing import Union, Optional
    def divide(a: float, b: float) -> Union[float, None]:
        return a / b if b != 0 else None
  4. Generics (обобщенные типы):
    python
    from typing import List, Dict
    def process(items: List[int]) -> Dict[str, int]:
        return {"count": len(items)}
  5. Structural subtyping (протоколы) — типы определяются структурой, а не явным наследованием:
    python
    from typing import Protocol
    class Flyer(Protocol):
        def fly(self) -> str: ...
  6. Any — отключает проверку типов, а NoReturn указывает, что функция никогда не возвращает управление.

Типизация в Python остается динамической, но аннотации помогают улучшить читаемость и надежность кода.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы