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

Работал ли с Dependency Injection

Да, работал. Dependency Injection (DI) — это паттерн проектирования, который позволяет внедрять зависимости в класс извне, а не создавать их внутри. Это делает код более гибким, тестируемым и поддерживаемым.

В Python DI можно реализовать вручную или с помощью библиотек (например, injector, dependency-injector).

Пример ручной реализации:

python
class Database:
    def query(self, sql):
        print(f"Executing: {sql}")

class UserService:
    def __init__(self, db):
        self.db = db  # Внедрение зависимости через конструктор

db = Database()
service = UserService(db)  # DI в действии
service.db.query("SELECT * FROM users")

С библиотекой dependency-injector:

python
from dependency_injector import containers, providers

class Container(containers.DeclarativeContainer):
    db = providers.Singleton(Database)
    user_service = providers.Factory(UserService, db=db)

container = Container()
service = container.user_service()

DI особенно полезен в тестировании (можно подменять зависимости на mock/stub) и в сложных приложениях с множеством компонентов.

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

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

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

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