内容简介: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)
其他详细的改进和更新说明请查看发布公告。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
How to Solve It
Zbigniew Michalewicz、David B. Fogel / Springer / 2004-03-01 / USD 59.95
This book is the only source that provides comprehensive, current, and detailed information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic pro......一起来看看 《How to Solve It》 这本书的介绍吧!