Sal*_*ley 3 python type-hinting python-3.5
我想在我的开源库中支持Python的新功能。Python的新类型提示使用户更容易使用我的软件。
但是它带有一个障碍-它依赖于一个typing需要一些更有趣的类型注释的库。该库在Python <3.5中不存在。
通常,我会使用兼容性库(例如six)来处理该问题,但是目前尚不支持该typing模块six。
另一个可以接受的解决方案可能是类似于3to2转换器的东西,可以剥离不支持的功能。不幸的是,我还没有看到3.5到3.(x <5)的转换器。
看来,目前唯一可用的替代方法是将我所有的typedef导入包装到try块中,并为该语言的旧版本提供伪造的typedef。这很丑陋,而不是我想要承担我的项目的方式。
有什么建议么?
Python 3.5中的类型提示由两部分组成:
typing两者都可以在早期的Python版本中使用,或者可以在尚不支持注释语法的地方使用。
该模块已向后移植到Python 3.2和更高版本。从3.0开始,所有Python 3版本都支持注释,请参见PEP 3107。这意味着带有类型提示的代码可用于所有广泛使用的Python 3发行版。
对于Python 2.x,可以改为使用存根文件。它们实际上并没有执行,只有静态分析工具才能解析它们。您仍将typing为此“导入” 模块,但是永远不会实际加载该模块,也不需要为存根文件安装该模块。存根文件具有.pyi扩展名,并且位于其.py对应文件的旁边,但包含完整的批注,但没有函数体(应使用...省略号文字代替)。
您可以查看Mypy存根规范,以了解实际的工作方式。提示PEP的Python类型很大程度上受Mypy等工具的启发。
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |