概览

Python3.6.0于2016年12月23日发布,与3.5版本相比,添加了以下新特性,详情请看python3.6发布日志。

新的语法特性:

  • 格式化字符串字面值
  • 数字字符串中支持下划线
  • 变量注释的语法
  • 异步生成器
  • 异步列表推导

新的模块

添加了一个安全模块secrets到标准库中

CPython实现改进

  • 字典基于Raymond Hettinger的建议使用更紧凑的表示重新实现了,和PyPy的字典实现类似。结果是和3.5版本相比,3.6版本字典的内存使用减少了20%到25%。
  • 使用新的协议,自定义类的创建被简化了。
  • 类属性的定义顺序能够被保存。
  • 现在**kwargs中元素的顺序对应于传递给函数时的关键字参数的顺序。
  • 添加了DTrace和SystemTap探测的支持。
  • 新的PYTHONMALLOC环境变量可以用于调试解释器内存分配和访问错误。

重大的标准库改进

  • asyncio模块接收了新特性,重大的可用性和性能改进,然后修复了大量的BUG。从Python 3.6开始asyncio模块不再是临时的了,它已经被认为是稳定的了。
  • 新的文件系统路径协议已实现,用于支持路径类对象。所有标准库函数在处理路径时已使用新的协议。
  • datetime模块在本地时间消除歧义上获得了支持。
  • typing模块接受了一些改进。
  • tracemalloc模块经过重大改造,现在可以为ResourceWarnning提供更好的输出,也为内存分配错误提供更好的诊断。

安全改进

  • secrets模块已被添加,可以生成更安全的伪随机数。
  • 在Linux上,os.urandom()现在会被锁住,直到系统的伪随机滴池被初始化增加安全。
  • hashlib和ssl模块现在支持OpenSSL 1.1.0。
  • hashlib模块现在支持BLAKE2、SHA-3和SHAKE摘要算法和scrypt()秘钥导出功能。

Windows改进

  • Windows文件系统和控制台编码改为了UTF-8。
  • python.exe和pythonw.exe现在支持长路径,详情请看removing the MAX_PATH limitation。
  • 一个._pth文件可以被添加用于隔离模块,避免全路径搜索,详情请看文档。

Formatted字符串字面值

Formatted字符串是带有’f’字符前缀的字符串,可以很方便的格式化字符串。

>>> name = "xiaoming"
>>> f"He name is {name}"
'He name is xiaoming'
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal("12.34567")
>>> f"result: {value:{width}.{precision}}"
'result:      12.35'

数字中支持下划线

数字中支持使用下划线,方便阅读,例如:

>>> 1_000_000_000_000_000
1000000000000000
>>> 0x_FF_FF_FF_FF
4294967295

字符串format方法也支持了’_’选项,当格式化为浮点数或整数时,以3位分隔,当格式化为’b’,’o’,’x’和’X’时,以4位分隔

>>> '{:_}'.format(10000000)
'10_000_000'
>>> '{:_b}'.format(10000000)
'1001_1000_1001_0110_1000_0000'

变量注释语法

变量注释没有给变量带来特殊的意义,只是为了方便IDE做类型检查。

>>> from typing import List,Dict
>>> primes: List[int] = []
>>> stats: Dict[str, int] = {}

上面代码中primes为变量名,List[int]为变量注释,用来说明primes列表是用来存放int类型数据的,但是这个不是强制性的,你使用append()方法添加一个str类型数据也是可以的,IDE会提示你添加的数据有误,但是运行时不会报错。

异步生成器

在Python3.5中,await和yield不能再同一个函数中使用,但是Python3.6已经取消了这个限制,可以在同一个函数体中使用了

async def ticker(delay, to):"""Yield numbers from 0 to *to* every *delay* seconds."""for i in range(to):yield iawait asyncio.sleep(delay)

异步列表推导

增加在list、set和dict的列表推导和生成表达式中使用async for。
如下面这段代码

result = []
async for i in aiter():if i % 2:result.append(i)

使用异步推导式之后,可以简写成

result = [i async for i in aiter() if i % 2]

现在也支持在所有的推导式中使用await表达式

result = [await fun() for fun in funcs]

Python3.6新特性(部分)相关推荐

  1. Python3.8 新特性:仅位置参数

    这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments) 函数传递参数的方式繁多,有位置参数.默认参数. ...

  2. python 3.8 新特性 video_1分钟了解:Python3.8 新特性:仅位置参数

    这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments) 插播一条:我自己是一名从事了多年开发的Pyth ...

  3. Python3.8 新特性:f-strings调试

    f-strings调试 这是Python3.8新特性的第三篇,第一篇介绍了Python3.8 新特性:赋值表达式,第二篇是Python3.8 新特性:仅位置参数.这篇文章介绍f-strings调试功能 ...

  4. Python3.10新特性初体验

    Python3.10新特性初体验 注:图片来源 目录 结构模式匹配 [PEP 635] union类型允许X | Y [PEP 604] 带圆括号的上下文管理器 一.结构模式匹配(新增PEP 635) ...

  5. python3.8新特性 逻辑表达式_Python3.8新特性

    人生天地间,忽如远行客 昨日Python3.8稳定版发布,官网发布了一篇介绍新特性的文章,在此记录一下. 新增赋值操作符 := 作用:把较大表达式中的某部分值赋给变量,因为看起来像海象的眼睛和牙齿,: ...

  6. Python3.8 新特性:赋值表达式

    Python3.8 正式版本已经发布,喜欢尝鲜的同学可以下载下来体验一下,我并没有打算升级到最新版本,因为性能上并没有显著提升.但还是有必要了解其中的新特性. 赋值表达式的语法是:" nam ...

  7. python3.8新特性 逻辑表达式_Python3.8正式发布!新特性解析在这里

    Python3.8正式发布!新特性解析在这里 诗书塞外 Python程序员 10月14日,Python 3.8 正式版发布.这也意味着一个Python开发周期的结束,和另一个开发周期的开始.Pytho ...

  8. Python3.8 了解的差不多了吧,Python3.9 新特性了解一下!

    "Python学习开发",一个值得加星标的公众号. 正文共:4946 字 1 图 预计阅读时间:13 分钟 作者:陈祥安 原文有删改:https://docs.python.org ...

  9. Python3.0 新特性

    这篇文章主要介绍了相比于python 2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动 ...

  10. python3.9新特性_Python3.9又更新了:dict内置新功能

    Python3.8 的热乎劲还没过去,Python 就又双叒叕要更新了.近日,3.9 版本的第四个 alpha 版已经开源.从文档中,我们可以看到官方透露的对 dict.math 等组件增加的新特性, ...

最新文章

  1. ssd_mobilenet_v2_quantized_coco 转为 tflite 格式在 Android 上运行
  2. CSS中浮动布局float(小米布局案例、导航栏案例、overflow)
  3. shell中的命令替换和变量替换
  4. html选择文件上传ajax,使用HTML5实现文件上传(ajax方式)以及进度显示
  5. 部署微服务– Spring Boot fatjar到Amazon Elastic Beanstalk
  6. 单元测试中使用Mockito模拟对象
  7. AdoHelper使用MySQL存储过程示例
  8. 1.5 编程基础之循环控制 35 求出e的值
  9. TBXML常用API
  10. laravel框架使用datatables
  11. 具体数学_计算机科学基础(第2版)pdf
  12. 计算机诗人 原理,写诗软件
  13. 笔记本电脑禁用自带键盘
  14. Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)
  15. 文件存储php源码,FFS5-Mini v120731 最终版 php网络文件存储分享系统
  16. win7记事本的小窍门应用可以学会
  17. 湖北二本大学计算机排名,2017年二本大学排名及分数线(湖北省)
  18. 网络层IP协议和数据链路层
  19. 计算机英语情景对话二人组,英语小对话四人组,英语小对话二人组日常?
  20. 独特画风-rpgmaker复古像素游戏素材

热门文章

  1. 如何让百度等搜索引擎搜到自己的博客
  2. 三星970EVO Plus及NvMe系列固态硬盘对比测试
  3. PHP--入门(一)
  4. 京东试用机器人 油猴代码待修复
  5. 喜讯:中国两项世界顶级发明获中美专利--人脑智能技术和不可破加密技术
  6. 人工智能意念控制打字_智能打字稿批量属性分配
  7. UML 2.0修成正果
  8. lisp 画一个矩形
  9. orb-slam系列 LocalMapping线程 开始(八)
  10. sql 获取某年 某月的数据