Dependency Injector — Dependency injection framework for Python
オブジェクトの生成方法を Module で定義し、その中で別のオブジェクトを自動生成したい場合、provider 関数に injector を渡せば良い。
from injector import Injector, Module, provider
class AppModule(Module):
@provider
def provide_hoge(self, injector: Injector) -> Hoge:
return Hoge(injector.get(Fuga), "hello")
injector = Injector([AppModule])
hoge = injector.get(Hoge)