mypy 1.0 正式发布,Python 静态类型检查器
mypy 是 Python 静态类型检查器,旨在结合动态类型和静态类型的优点,将 Python 的表现力和便利性与强大的类型系统和编译时 (compile-time) 类型检查相结合,提供编译时的类型检查和高效地编译为原生代码,无需使用重量级和耗费 runtime 开销的 Python 虚拟机。
近日,mypy 正式发布了 1.0 版本,引入了新特性、优化了性能以及修复错误等。
主要变化
- 采用新的版本号命名规则
由于 mypy 版本号已进入 1.0 阶段,因此开发团队决定切换到新的版本号命名规则,新规则将采用 x.y.z. 格式:
- 如果功能版本包含影响大部分用户的重大向后不兼容性变更,则主版本号 (x) 会递增
- 每个功能版本都会增加次要版本号 (y)
- 当仅存在修复时,小版本号 (z) 会递增
详细说明。
- 优化性能
团队介绍道,在检查 Dropbox 内部代码库时,他们发现 mypy 1.0 的速度比 mypy 0.991 快 40%。他们还设置了一个日常工作来衡量 mypy 最新开发版本的性能,以便更容易跟踪性能变化。
部分优化项包括:
- 提升具备许多属性的类错误的性能
- 加速 make_simplified_union
- 针对语义分析器的微优化
- 加速递归类型检查
- 加速刷新类型变量
- 通过避免嵌套函数优化子类型检查
- 优化子类型检查中的类型参数检查
- 支持"self"类型
现在有一个更简单的语法来声明 PEP 673 中引入的通用 self 类型:Self 类型。开发者不再需要定义类型变量来使用"self"类型,并且可以将它们与属性搭配使用。mypy 文档中的示例:
from typing import Self class Friend: other: Self | None = None @classmethod def make_pair(cls) -> tuple[Self, Self]: a, b = cls(), cls() a.other = b b.other = a return a, b class SuperFriend(Friend): pass # a and b have the inferred type "SuperFriend", not "Friend" a, b = SuperFriend.make_pair()

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQLAlchemy 2.0.2 发布,Python ORM 框架
SQLAlchemy 2.0.2 已发布,更新内容主要是关于声明式注释 (Declarative Annotations) 功能的改进和错误修复。 此外,该版本还修复了一个特殊 bug:在 asyncio 下使用 asyncpg 数据库驱动时发现的连接池问题。当连接池中的连接没有正确返回到连接池中时,连接池没有反馈此情况,该问题已经被修复。 详情查看 Changelog。 下载地址:https://www.sqlalchemy.org/download.html SQLAlchemy 2.0 是一个非常大的版本更新,它有两个迁移指南: Major Migration Guide:介绍了如何使应用程序达到 API 兼容性,以便能够在 SQLAlchemy 1.4 或 2.0 中同等运行 SQLAlchemy 2.0新功能:提供了应用程序在 SQLAlchemy 2.0 上运行后可用的所有新功能和 API。 延伸阅读 SQLAlchemy 2.0.0 正式发布,Python ORM 框架
- 下一篇
Chrome 110 发布,停止支持 Windows 7/8.1
时隔四周,Chrome 新版本如约而至,Chrome 110 版带来了对翻译、密码管理、Nvidia RTX Super Resolution 等功能的改进与支持,并且从该版本起 Chrome 将不再支持 Windows 7 和 8.1 系统,如需使用最新版本 Chrome 浏览器,需要将系统最低升级至 Windows 10。 Google 翻译 Chrome 内置了 Google 出色的翻译服务,但想要改变翻译功能的某些设置一直都比较复杂。以前最简单的选择是访问一个外语网页,一旦出现 Google 翻译的弹出窗口,就可以在那里调整设置。 现在 Chrome 在这方面做得更好,可以直接在浏览器设置中的 "语言" 标签下找到 Google 翻译的选项,也可以通过在地址栏中访问 "chrome://settings/languages" 来查阅设置。 安全浏览 Google 在 Chrome 中提供了一些功能来确保安全浏览。在 Chrome 110 中,你可以将安全功能再提升一个层次。每当一个网站或浏览器扩展程序提出 cookie 请求时,你都可以获得分析,以检查是否存在任何恶意软件。 N...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7,CentOS8安装Elasticsearch6.8.6
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Redis,开启缓存,提高访问速度