Встречается на собеседованиях • сегодня
Какими способами можно внедрить зависимость одного класса в другой
В Python есть несколько способов внедрения зависимостей (Dependency Injection):
- Через конструктор (наиболее распространённый способ):
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()- Через сеттер:
python
class Client:
def set_service(self, service: Service):
self.service = service- Через метод (временная инъекция):
python
class Client:
def execute(self, service: Service):
return service.do_something()- Через интерфейс/абстрактный класс (лучшая практика):
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"- Используя 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)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы