Python 3.7.0 正式版新特性解析

美国时间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

原文发布于微信公众号 - 加米谷大数据(DtinoneBD)

原文发表时间:2018-07-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

c语言几个松散的地方(不足的地方,不严谨的地方,它容易出错的地方)。

c语言是面向过程的语言,是弱类型语言,c语言的源代码基本就是无数个函数的堆砌。 即很多函数就组成c语言源代码了,也即它的源代码基本就是函数构成的。

1872
来自专栏欧阳大哥的轮子

深入解构iOS系统下的全局对象和初始化函数

事件源于接入了一个第三方库导致应用出现了大量的crash记录,很奇怪的是这么多的crash居然没有收到用户的反馈信息! 在这个过程中每个崩溃栈的信息都明确的指向...

2062
来自专栏吴伟祥

Jmockdata随机模拟 Java 数据插件

     Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。

1042
来自专栏韩伟的专栏

框架设计原则和规范(完)

祝大家圣诞节快乐!有事没事别出门,外面太!挤!了! 此文是《.NET:框架设计原则、规范》的读书笔记,本文内容较多,共分九章,今天推送最后一章。 1. 什么是好...

2884
来自专栏程序员宝库

PHP 中被忽略的性能优化利器:生成器

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,...

3136
来自专栏Golang语言社区

轻量级交互数据json格式初探

什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交...

3406
来自专栏木宛城主

Unity应用架构设计(7)——IoC工厂理念先行

一谈到 『IoC』,有经验的程序员马上会联想到控制反转,将创建对象的责任反转给工厂。IoC是依赖注入 『DI』 的核心,大名鼎鼎的Spring框架就是一个非常...

2837
来自专栏生信宝典

Bash概论 - Linux系列教程补充篇

本篇是我最开始学习Linux命令时看的一篇帖子,最早见于ChinaUnix (这次查找其出处时发现2002年就有这篇)。学习过程中,遇到问题就查一下。这次看到,...

1967
来自专栏H2Cloud

FFLIB之FFLUA——C++嵌入Lua&扩展Lua利器

摘要: 在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过p...

6857
来自专栏hbbliyong

C#基础知识回顾-- 属性与字段

  今天在公交车上,突然想属性和字段到底有什么区别?很多字段属性都存在 get{}和set{} 和普通的变量没什么区别(可读可写) 我就感觉属性就是给字段一个多...

3604

扫码关注云+社区

领取腾讯云代金券