前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 3.7.0 正式版新特性解析

Python 3.7.0 正式版新特性解析

作者头像
加米谷大数据
发布2018-07-25 18:03:40
5420
发布2018-07-25 18:03:40
举报
文章被收录于专栏:加米谷大数据加米谷大数据

美国时间6月27日晚8点,Python 3.7.0 经过多轮测试,终于发布了正式版,增强了多处特性功能,同时 3.6 也更新到 3.6.6 稳定版本。

主要特性

* PEP 539,新增 CPython 中用于线程本地存储的 C-API

* PEP 545,Python 官方文档翻译版本,新增日文、法文、韩文

* PEP 552,优化 pyc 文件

* PEP 553,新增内置函数 breakpoint() ,该函数在调用时自动进入调试器

* PEP 557,新增内置模块dataclasses,可大幅简化类实例属性的初始化定义

* PEP 560,新增支持类型模块和泛型

* PEP 562,支持在模块定义 __getattr__ 和__dir__

* PEP 563,推迟对注释语句的分析从而优化 Python 的类型提示

* PEP 564,time 内置函数支持纳秒

* PEP 565,重新在 __main__ 中默认显示 DeprecationWarning

* PEP 567,新增 contextvars模块,可实现上下文变量解决变量线程安全

* 避免使用 ASCII 作为默认文本编码,强制 UTF-8 编码运行

* 字典对象的 keys 按插入顺序排列,现在是官方语言规范

* 多方面的显著性能优化

dataclasses模块示例

这个特性可能是 3.7.0 以后比较常用的了,是从其他语言借鉴过来的,这里简单演示下用法。

假如我们要封装一个类对象,在之前我们的代码可能要这么写:

大量的初始化属性要定义默认值,可能还需要重写一堆魔法方法,来实现类实例之间的排序、去重等功能。

如果使用dataclass进行改造,可以写成这个样子:

可见这种语法使代码更加简练清晰,也更符合面向对象思想的语法方式,用过 SQLAlchemy 的同学肯定觉得很像 ORM 写法。

上述示例只是最基础的展示,更丰富的用法可以查看PEP 557文档。

3.7.0 下载地址:

https://www.python.org/downloads/release/python-370/

更多特性:

https://docs.python.org/3.7/whatsnew/3.7.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档