语法差异
- async/await:Python 3.5 引入了异步编程,并将其扩展到了 Python 3.7。async/await 语法允许开发人员编写并发代码,而无需手动管理线程和锁。
- 类型提示:Python 3.5 引入了类型提示,以帮助开发者捕获类型错误。在 Python 3.7 中,类型提示得到了增强,增加了对协程和类型别名的支持。
- 数据类:Python 3.7 引入了数据类,这是一种创建不可变值对象的简便方法。数据类类似于元组和命名元组,但提供了额外的功能,例如比较和哈希。
内置库差异
- async 包:Python 3.7 引入了 async 包,其中包含用于异步编程的工具。此包包含用于事件循环、任务和锁的类和函数。
- asyncio 包:asyncio 包是在 Python 3.4 中引入的,它用于构建高性能并发应用程序。在 Python 3.7 中,asyncio 包得到了增强,添加了对协程和类型别名的支持。
- tqdm 包:tqdm 是一个流行的进度条库,在 Python 3.7 中得到了显著改进。现在,该库支持异步编程,并提供了一种更灵活的方式来定制进度条的外观和感觉。
性能差异
- GIL 改进:Python 解释器使用全局解释器锁 (GIL) 来防止多线程同时访问共享数据。在 Python 3.7 中,GIL 已得到改进,以减少对并发代码的影响。
- 垃圾回收改进:Python 3.7 中引入了新的垃圾回收算法,该算法可以提高垃圾回收的效率,从而提高整体性能。
- JIT 编译器:Python 3.7 中引入了可选的 JIT(即时)编译器,该编译器可以将某些 Python 代码编译为机器代码。这可以显著提高某些应用程序的性能。
其他差异
- 新的异常:Python 3.7 引入了几个新的异常,用于处理异步编程和类型错误。
- 语法糖:Python 3.7 添加了一些语法糖,使编写代码更简洁、更易读。例如,现在可以将
async for
和async with
语句与普通for
和with
语句一起使用。 - 版本管理:Python 3.3 的 EOL(生命周期结束)日期为 2017 年,而 Python 3.7 的 EOL 日期为 2023 年。这意味着 Python 3.7 将继续获得官方支持和安全更新。
问答
-
Python 3.3 中不存在的,而在 Python 3.7 中引入的新异步编程语法是什么?
- async/await
-
Python 3.7 中为数据类引入的新功能是什么?
- 比较和哈希
-
Python 3.7 中用于异步编程的新包是什么?
- async 包
-
Python 3.7 中用于提高并发代码性能的 GIL 改进是什么?
- GIL 改进
-
Python 3.3 和 3.7 中版本管理的主要差异是什么?
- Python 3.3 的 EOL 日期为 2017 年,而 Python 3.7 的 EOL 日期为 2023 年。
原创文章,作者:王利头,如若转载,请注明出处:https://www.wanglitou.cn/article_14504.html