如何通过循环导入维护 Python 中的类型提示?

Mary-Kate Olsen
发布: 2024-10-23 13:04:01
原创
759 人浏览过

How to Maintain Type Hints in Python with Cyclic Imports?

通过循环导入维护 Python 中的类型提示

使用大型 Python 类时,将它们拆分为多个文件以实现更好的组织和可维护性可能会很有帮助。然而,由于潜在的循环导入,在保留类型提示的同时实现这一点可能具有挑战性。

一种方法涉及在引用主类的 mixin 类中使用类型注释。但是,这可能会导致 Python 中不允许的循环导入。

要解决此问题,可以采用多种解决方案:

  • 保护代码块with 'TYPE_CHECKING':

    • 将 mixin 类中带有类型注释的代码包含在检查 'TYPE_CHECKING' 常量的 if 语句中。
    • 此常量设置为在类型检查期间为 True(例如,通过 mypy 等工具),但在运行时为 False,有效地禁用导入,否则会导致循环依赖。
    • 但是,这需要将类型提示显式注释为字符串,如下所示符号在运行时不可用。
  • 利用带有 'from future 导入注释'的前向声明:

    • 在 Python 3.7 中,此导入允许将所有类型注释表示为字符串,从而消除了显式字符串注释的需要并提高了可读性。
    • 请注意,所有类型提示都会变成字符串,并且不会在运行时进行评估,可能会影响代码行为。
  • 考虑抽象基类 (ABC) 方法:

    • Mypy 建议创建一个主类和 mixin 都继承自 ABC。
    • 这种方法可能更适合代码结构和可维护性至关重要的大型项目。

以上是如何通过循环导入维护 Python 中的类型提示?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!