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

Какими способами можно внедрить зависимость одного класса в другой

В Python есть несколько способов внедрения зависимостей (Dependency Injection):

  1. Через конструктор (наиболее распространённый способ):
python
class Service:
    def do_something(self):
        return "Done"

class Client:
    def __init__(self, service: Service):
        self.service = service
    
    def execute(self):
        return self.service.do_something()
  1. Через сеттер:
python
class Client:
    def set_service(self, service: Service):
        self.service = service
  1. Через метод (временная инъекция):
python
class Client:
    def execute(self, service: Service):
        return service.do_something()
  1. Через интерфейс/абстрактный класс (лучшая практика):
python
from abc import ABC, abstractmethod

class IService(ABC):
    @abstractmethod
    def do_something(self): pass

class RealService(IService):
    def do_something(self):
        return "Real implementation"
  1. Используя DI-контейнеры (например, injector, dependency-injector):
python
from dependency_injector import containers, providers

class Container(containers.DeclarativeContainer):
    service = providers.Singleton(Service)
    client = providers.Factory(Client, service=service)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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