mypy 0.700 发布,显著提升性能,比旧版本快 4 倍

栏目: 软件资讯 · 发布时间: 6年前

内容简介:mypy 是处于实验性阶段的 Python 静态类型检查器,旨在结合动态类型和静态类型的优点,将 Python 的表现力和便利性与强大的类型系统和编译时(compile-time)类型检查相结合,提供编译时的类型检查和高效地编译为...

mypy 是处于实验性阶段的 Python 静态类型检查器,旨在结合动态类型和静态类型的优点,将 Python 的表现力和便利性与强大的类型系统和编译时(compile-time)类型检查相结合,提供编译时的类型检查和高效地编译为原生代码,无需使用重量级和耗费 runtime 开销的 Python 虚拟机。

mypy 仍处于开发阶段,支持大多数 Python 特性。

最新版的 mypy 0.700 已于两周前发布,更新内容集中在优化性能方面。官方表示相对于旧版本,mypy 0.700 速度快了 4 倍以上。除此之外,还包括引入新功能、错误修复和 library stub (typeshed) 更新,使用以下命令进行升级:

python3 -m pip install -U mypy

性能改进

从该版本起,默认使用由 mypyc 编译得到的 mypy 二进制文件,比之前发布的解释版本快 4 倍。编译版本也已经作为单独的 PyPI 发行版提供有一段时间了,而且这也是默认安装的第一个版本。

mypyc 是一个编译器,它将类型注释的 Python 模块编译成高效的 CPython C 扩展模块。

值得注意的是,对于旧版本可选的 mypy_mypyc 包将不会再进行更新。如果曾使用 mypy_mypyc 包来进行发布,则应在更新到新软件包之前先将其卸载:

python3 -m pip uninstall mypy_mypyc

64 位的 macOS, Windows 和 Linux 平台支持编译版本(要求 Python 3.5 或更高版本)。至于其他平台则依旧是使用解释版本,但不提供任何性能改进。编译版本与大多数解释版本兼容,但某些 mypy 插件可能与它不兼容。可以通过这样的方式来安装 0.700 的解释版本:

$ python3 -m pip install --no-binary mypy -U mypy

更严格的相等性检验

如果加上参数 --strict-equality 运行 mypy,它会直接检查相等性,而最后结果有可能总是 True 或 False,因为操作类型不会重叠。

Python 3.4 不支持运行 mypy

不能再使用 Python 3.4 运行 mypy 了,因为 Python 3.4 已经达到了它的生命周期。不过我们仍然可以输入针对 Python 3.4 的检查代码,官方暂时没有计划放弃对此的支持。

改进插件系统

  • 增加 get_additional_deps() 插件钩子以支持 django-stubs (PR 6598)
  • 对动态类使用 get_attribute_hook() 插件钩子 (lincolnq, PR 6371)

其他详细的改进和更新说明请查看发布公告


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

硅谷之谜

硅谷之谜

吴军 / 人民邮电出版社 / 2015-12-1 / 59.00

这是一本颠覆人们对信息时代的认识、对创新和创业的理解的好书。作者吴军通过介绍硅谷成功的秘诀,揭示了信息时代的特点和方法论。 近年来,吴军从技术和管理人员变成了投资人,他对IT领域,尤其是对科技创新因而有了更深入的了解。他根据这些年在硅谷所获得的第一手资料,结合自己的思考,回答了长期以来令大家深感困惑的一个不解之谜,那就是—为什么硅谷在全世界其他地区难以复制? 《硅谷之谜》从某种意义上讲......一起来看看 《硅谷之谜》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换