> Что такое Dependency Injection (DI) (Python)
Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Точка, ProFinansy, ООО Диджитал Сектор Поддержка, Спортлевел, Black Wall Group (BWG), Т1, Московский метрополитен
Стек: Python
> Пример ответа
Dependency Injection (DI) - это паттерн проектирования, при котором зависимости объекта (например, сервисы, репозитории, конфигурации) передаются извне, а не создаются внутри самого объекта. В Python это часто реализуется через передачу аргументов в конструктор или через специальные DI-контейнеры (например, dependency-injector).
Пример без DI:
PYTHONclass UserService:def __init__(self):self.db = Database() # Жёсткая связь
Пример с DI:
PYTHONclass UserService:def __init__(self, db: Database):self.db = db # Зависимость передаётся извне
Преимущества DI: упрощение тестирования (можно подменить реальную БД на мок), повышение гибкости и переиспользования кода, уменьшение связанности компонентов. В Python DI особенно полезен в веб-фреймворках (FastAPI, Flask) и при построении масштабируемых приложений.
> Похожие задачи по Python
Как бороться с циклическими ссылками в Python
Что означает изменяемость и неизменяемость объектов в Python
В чем разница между select_related и prefetch_related в Django ORM?
В чем разница синхронности и асинхронности в Python
> Похожие задачи по backend
Как бороться с циклическими ссылками в Python
Что означает изменяемость и неизменяемость объектов в Python
В чем разница между select_related и prefetch_related в Django ORM?
В чем разница синхронности и асинхронности в Python
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью