Комментарии 8
НЛО прилетело и опубликовало эту надпись здесь
Подумаю над упрощением, спасибо.
0
Собрал простенький пример:
from dependency_injector import containers, providers
class ApiClient:
def __init__(self, api_key: str, timeout: int):
self.api_key = api_key
self.timeout = timeout
class Service:
def __init__(self, api_client: ApiClient):
self.api_client = api_client
class Container(containers.DeclarativeContainer):
config = providers.Configuration()
api_client = providers.Singleton(
ApiClient,
api_key=config.api_key,
timeout=config.timeout,
)
service = providers.Factory(
Service,
api_client=api_client,
)
if __name__ == '__main__':
container = Container()
container.config.from_yaml('config.yml')
service = container.service()
assert isinstance(service.api_client, ApiClient)
0
интересный метод, может пригодится
docs.python.org/3/reference/datamodel.html#object.__init_subclass__
docs.python.org/3/reference/datamodel.html#object.__init_subclass__
+1
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
CLI приложение + Dependency Injector — руководство по применению dependency injection + Вопросы / ответы