Python3.6新特性(部分)
概览
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新特性(部分)相关推荐
- Python3.8 新特性:仅位置参数
这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments) 函数传递参数的方式繁多,有位置参数.默认参数. ...
- python 3.8 新特性 video_1分钟了解:Python3.8 新特性:仅位置参数
这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments) 插播一条:我自己是一名从事了多年开发的Pyth ...
- Python3.8 新特性:f-strings调试
f-strings调试 这是Python3.8新特性的第三篇,第一篇介绍了Python3.8 新特性:赋值表达式,第二篇是Python3.8 新特性:仅位置参数.这篇文章介绍f-strings调试功能 ...
- Python3.10新特性初体验
Python3.10新特性初体验 注:图片来源 目录 结构模式匹配 [PEP 635] union类型允许X | Y [PEP 604] 带圆括号的上下文管理器 一.结构模式匹配(新增PEP 635) ...
- python3.8新特性 逻辑表达式_Python3.8新特性
人生天地间,忽如远行客 昨日Python3.8稳定版发布,官网发布了一篇介绍新特性的文章,在此记录一下. 新增赋值操作符 := 作用:把较大表达式中的某部分值赋给变量,因为看起来像海象的眼睛和牙齿,: ...
- Python3.8 新特性:赋值表达式
Python3.8 正式版本已经发布,喜欢尝鲜的同学可以下载下来体验一下,我并没有打算升级到最新版本,因为性能上并没有显著提升.但还是有必要了解其中的新特性. 赋值表达式的语法是:" nam ...
- python3.8新特性 逻辑表达式_Python3.8正式发布!新特性解析在这里
Python3.8正式发布!新特性解析在这里 诗书塞外 Python程序员 10月14日,Python 3.8 正式版发布.这也意味着一个Python开发周期的结束,和另一个开发周期的开始.Pytho ...
- Python3.8 了解的差不多了吧,Python3.9 新特性了解一下!
"Python学习开发",一个值得加星标的公众号. 正文共:4946 字 1 图 预计阅读时间:13 分钟 作者:陈祥安 原文有删改:https://docs.python.org ...
- Python3.0 新特性
这篇文章主要介绍了相比于python 2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动 ...
- python3.9新特性_Python3.9又更新了:dict内置新功能
Python3.8 的热乎劲还没过去,Python 就又双叒叕要更新了.近日,3.9 版本的第四个 alpha 版已经开源.从文档中,我们可以看到官方透露的对 dict.math 等组件增加的新特性, ...
最新文章
- ssd_mobilenet_v2_quantized_coco 转为 tflite 格式在 Android 上运行
- CSS中浮动布局float(小米布局案例、导航栏案例、overflow)
- shell中的命令替换和变量替换
- html选择文件上传ajax,使用HTML5实现文件上传(ajax方式)以及进度显示
- 部署微服务– Spring Boot fatjar到Amazon Elastic Beanstalk
- 单元测试中使用Mockito模拟对象
- AdoHelper使用MySQL存储过程示例
- 1.5 编程基础之循环控制 35 求出e的值
- TBXML常用API
- laravel框架使用datatables
- 具体数学_计算机科学基础(第2版)pdf
- 计算机诗人 原理,写诗软件
- 笔记本电脑禁用自带键盘
- Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)
- 文件存储php源码,FFS5-Mini v120731 最终版 php网络文件存储分享系统
- win7记事本的小窍门应用可以学会
- 湖北二本大学计算机排名,2017年二本大学排名及分数线(湖北省)
- 网络层IP协议和数据链路层
- 计算机英语情景对话二人组,英语小对话四人组,英语小对话二人组日常?
- 独特画风-rpgmaker复古像素游戏素材