python3.0不向后兼容啥意思,有没有一种策略可以使Python 3.5代码向后兼容类型注释?...

我想在我的开源库中支持新的Python功能. Python的新类型提示使用户更容易使用我的软件.

但它带来了一个障碍 – 它依赖于一个名为键入的库,用于一些更有趣的类型注释. Python中不存在该库< 3.5.

通常情况下,我会使用兼容性库(例如六个)来处理它,但是现在还没有支持六个类型的打字模块.

另一个可接受的解决方案可能是3to2转换器,它可以剥离不支持的功能.不幸的是,我还没有看到3.5到3.(x <5)的转换器.

似乎现在唯一可用的替代方法是将我的所有typedef导入包装到try-blocks中,并为旧版本的语言提供假的typedef.这很丑陋,而不是我想采取我的项目的方式.

有什么建议?

解决方法:

Python 3.5中的类型提示由两部分组成:

>类型提示对象的库,名为typing

>注释语法

两者都可以在早期的Python版本中使用,或者可以在尚未支持注释语法的地方使用.

该模块已经是backported to Python 3.2 and newer.所有Python 3版本都支持注释,从3.0开始,见PEP 3107.这意味着类型提示代码可以适用于所有广泛使用的Python 3发行版.

对于Python 2.x,您可以使用stub files;这些实际上并没有执行,只有静态分析工具需要能够解析这些.您仍然会“导入”这些输入模块,但模块从未实际加载,也不需要为存根文件安装.存根文件具有.pyi扩展名并且位于其.py对应文件旁边,但包含完整注释,但没有函数体(您应该使用…省略号文字).

你可以看看Mypy stub specifications这个在实践中如何运作; Python类提示PEP很大程度上受到Mypy等工具的启发.

标签:python-3-5,type-hinting,python

来源: https://codeday.me/bug/20190829/1762485.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值