为了账号安全,请及时绑定邮箱和手机立即绑定

具有循环依赖关系的两个相互依赖的类的类型提示

具有循环依赖关系的两个相互依赖的类的类型提示

翻翻过去那场雪 2021-09-25 16:56:25
我知道通常不鼓励循环依赖——然而,在 C# 和 TypeScript 中,我有时发现它们很有用。这可能是我缺乏使用 python 的经验,或者我的想法错误或错过了谷歌搜索的正确词。我将如何解决以下问题?我正在尝试创建一个处理请求的类,并且这些处理事件中的每一个都伴随着一个上下文。所以,我想创建处理程序类和上下文类 - 但它们是相互依赖的,并且 linter 在第 2 行给了我问题,说HandlerService没有定义。示例(虚拟):class HandlerContext:    def __init__(self, service : HandlerService, uuid : str):        self.service = service        self.uuid = uuidclass HandlerService:    def handle_request(self, context : HandlerContext, data : object):        # do things ...        pass
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您可以使用前向引用,即使用service: "HandlerService"代替service: HandlerService

请注意,在未来的 Python 版本中,这将变得过时,因为注释评估顺序不会在函数定义时完成,而是在所有函数都已定义之后完成。您可以from __future__ import annotations在 python 3.7 及更高版本中通过导入开始使用此行为。有关详细信息,请参阅PEP563


查看完整回答
反对 回复 2021-09-25
  • 2 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号