Встречается на собеседованиях • сегодня
Как гарантировать контракт для функции в Python
В Python нет строгой проверки типов на этапе компиляции, но можно использовать следующие подходы:
- Type Hints + mypy
Аннотации типов + статический анализатор:pythonfrom typing import Protocol class Greeter(Protocol): def greet(self, name: str) -> str: ... def hello_world(g: Greeter) -> None: print(g.greet("World")) # mypy проверит соответствие
-
Декораторы для проверки во время выполнения
pythondef validate_types(func): def wrapper(*args, **kwargs): # Проверка типов args/kwargs по аннотациям func.__annotations__ return func(*args, **kwargs) return wrapper @validate_types def process(data: list[int]) -> int: ... -
ABC (Abstract Base Classes)
pythonfrom abc import ABC, abstractmethod class DataProcessor(ABC): @abstractmethod def process(self, data: bytes) -> str: ... -
Pydantic/Beartype
Библиотеки для строгой валидации типов в runtime.
Лучший подход зависит от контекста: для API — Pydantic, для библиотек — Protocol + mypy, для критичного кода — runtime-проверки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы