当使用子容器来组织应用程序中的层时,它们之间可能不会存在循环依赖关系。但是,对于域,情况并非如此。
@dataclass
class UserService:
payments: "PaymentsService"
def user_action(self):
print("user action")
self.payments.payment_action
@dataclass
class PaymentsService:
users: UserService
def payment_action(self):
print("payment action")
class UserContainer(containers.DeclarativeContainer):
payments = providers.DependenciesContainer()
service = providers.Factory(UserService, payments=payments.service)
class PaymentContainer(containers.DeclarativeContainer):
users = providers.DependenciesContainer()
service = providers.Factory(PaymentsService, users=users.service)
class ApplicationContainer(containers.DeclarativeContainer):
users = providers.Container(UserContainer, payments=???)
payments = providers.Container(PaymentContainer, users=users)
字符串
如果我想在最外层的容器中链接具有循环依赖关系的包,该怎么办?
1条答案
按热度按时间avwztpqn1#
您可以在ApplicationContainer类中添加此行
字符串