python3.7.2,python3.8.1
chanong
|新智慧编辑
来源:Python 软件基金会
作者:文飞、小青
【新智元介绍】Python官方网站悄然宣布重磅消息:Python 3.7.0已正式发布!Python 3.6.6稳定版也已发布。如果您仍在使用Python 2.7 和Python 3.5,请立即开始,因为我们已经更新了官方网站上的可下载文档。
Python官网宣布Python 3.7.0已经正式发布!
2018 年6 月27 日星期三
Python 3.7.0 现已推出(版本3.6.6 也已推出)。
我们代表Python 开发社区和Python 3.7 发布团队很高兴地宣布Python 3.7.0 现已推出。 Python 3.7.0是Python语言的最新功能版本,包含许多新功能和优化。您可以在此处下载Python 3.7.0。
https://www.python.org/downloads/release/python-370/
大多数Python 第三方库也将很快支持3.7.0 软件包。
有关3.7 系列中功能的更多信息,请参阅What's New in Python 3.7 文档。 3.7.0 中所做更改的详细信息可以在更改日志中找到。 3.7系列的维护版本将从2018年7月开始定期实施。
我们希望您喜欢使用Python 3.7。
附件:我们还很高兴地宣布Python 3.6的发布,即Python 3.6.6的下一个维护版本:https://www.python.org/downloads/release/python-366/
我们要感谢所有帮助开发和发布Python 的志愿者。我们欢迎您通过志愿服务或组织捐赠来支持Python 软件基金会的工作。
Python 3.7.0 的主要功能改进
那么新发布的Python 3.7.0有哪些重要改进呢?总的来说:
新的语法特征:
PEP 563,类型注释的延迟评估
不向后兼容的语法更改:
async 和await 现在是保留关键字
新的库模块:
contextvars:PEP 567 上下文变量
数据类:PEP 557 - 数据类
导入库.resources
新的内置功能:
PEP 553,新断点函数
改进的Python数据模型:
PEP 562,自定义访问模块属性
PEP 560,类型化模块和通用类型的核心支持
dict 对象的插入顺序保留性质内置于官方Python 语言规范中。
标准库的主要改进:
asyncio 模块添加了新功能并提高了可用性和性能
time 模块添加了对纳秒函数的支持,新函数以整数值形式返回纳秒。
CPython 部署改进:
不要使用ASCII 作为默认文本编码
PEP 552,确定性.pycs
新的运行模式
PEP 565,改进了DeprecationWarning 的处理
C API 改进:
PEP 539,用于线程本地存储的新C API
文档改进:
PEP 545,翻译Python 文档
添加了日语、法语和韩语文档
Python 3.7.0 的新特性
让我们仔细看看这些功能。
PEP 563:推迟对评论声明的评估
Python 的类型提示有两个明显的可用性问题。
注释只能使用当前范围内已存在的名称。也就是说,注释不支持任何类型的前向引用。对源代码进行注释会对Python 程序的启动时间产生负面影响。
这两个问题都可以通过推迟注释的评估来解决。编译器不会在定义注释时编译执行注释中的表达式的代码,而是将注释保存为字符串。如果需要,您可以使用typing.get_type_hints在运行时解析注释。在不需要解析的常见情况下,注释的存储成本较低,并且可以减少启动时间。
PEP 538:强制C 语言环境
Python 3 系列中持续存在的挑战是确定合理的默认策略来处理使用默认C 或POSIX 语言环境的非Windows 平台上当前的“7 位ASCII”文本编码假设。
PEP 538 更新了默认解释器命令行界面,以自动强制此区域设置为可用的基于UTF-8 的区域设置。设置LC_CTYPE 自动导致核心解释器和C 扩展(例如readline)假定UTF-8 作为默认文本编码而不是ASCII。
PEP 540:强制UTF-8 运行时模式
您可以使用新的-X utf8 命令行选项和PYTHONUTF8 环境变量启用CPython UTF-8 模式。
PEP 553:内置断点
Python 3.7 添加了内置函数断点,作为进入Python 调试器的简单且一致的方式。
PEP 539:用于线程本地存储的新C API
虽然Python提供了C API来支持线程本地存储,但现有的线程本地存储(TLS)API在所有平台上都使用int来表示TLS密钥,这符合POSIX标准,可移植性并不是很重要。
PEP 539 通过向CPython 提供新的线程本地存储(TSS) API 来改变这一点,该API 取代了CPython 解释器中现有TLS API 的使用,但弃用了现有API。 TSS API 使用新类型Py_tss_t 代替int 来表示TSS 密钥。这允许您在具有本机TLS 密钥定义的平台上构建CPython。
PEP 562:自定义对模块属性的访问
Python 3.7 支持在模块上定义__getattr__ 并在找不到模块属性时调用它。您还可以在模块上定义__dir__ 。
PEP 564:时间内置函数支持纳秒
为了避免精度损失,PEP 564 在时间模块中添加了六个新的“纳秒”变量。
time.Clock_gettime_ns
time.clock_settime_ns
时间.monotonic_ns
time.perf_counter_ns
时间.process_time_ns
时间.time_ns
PEP 565:在__main__ 中默认显示DeprecationWarning
DeprecationWarning 的默认处理已更改,因此默认情况下会再次显示这些警告。但前提是触发警告的代码直接在__main__ 模块中执行。
PEP 560:添加对类型模块和泛型的支持
PEP 引入了两种特殊方法,__class_getitem__ 和__mro_entries__,现在在大多数类和输入的特殊结构中使用。因此,不同类型上的各种操作现在速度提高了7 倍,可以在没有元类冲突的情况下使用泛型,并且类型模块中长期存在的错误已得到修复。
PEP 552:基于哈希的.pyc 文件
PEP 552 扩展了pyc 格式,以允许使用源文件哈希而不是源时间戳进行失效。这种.pyc 文件称为“基于哈希”。默认情况下,Python 仍然使用基于时间戳的失效,并且在运行时不会生成基于哈希的.pyc 文件。可以使用py_compile 或compileall 生成基于哈希的.pyc 文件。
PEP 545:翻译Python 文档
PEP 545 描述了创建和维护Python 文档翻译的过程。添加了三种语言的翻译。
? 日本:https://docs.python.org/ja/
? 法语:https://docs.python.org/fr/
?韩国:https://docs.python.org/ko/
开发运行时模式:-X dev
您可以使用新的-X dev 命令行选项或新的PYTHONDEVMODE 环境变量启用CPython 开发模式。在开发模式下,CPython 会执行默认情况下无法启用的额外运行时检查。
提高性能并下载文档
根据官方文档,新升级中的各种优化使Python在Linux上的启动时间减少了10%,在macOS上减少了30%。
字节码更改使方法调用速度提高了20%。
PEP 560 的功能可将输入导入时间缩短7 倍,并加快许多输入操作的速度。
优化正在进行中,请稍候。还有进一步的优化。
Python官方网站有非常全面的文档,今天刚刚更新。
它还列出了转换到新版本时出现的问题以及如何处理这些问题。
Python 3.7.0 目前可供下载:https://www.python.org/downloads/
还等什么,赶紧使用吧!
[加入社区]
Shinshibazono AI Technology + 我们正在招募行业社区。对AI技术+行业落地感兴趣的同学,请添加助理微信号: aiera2015_3入群。审核通过后,我们将邀请您入群。加入社区后务必更改群组备注(姓名-公司-职务。专业群组筛选更严格,请理解)。








