Python■你应该知道的Python3.6、3.7、3.8新特性
文章图片
前言
很多人在学习了基本的Python语言知识后 , 就转入应用阶段了 , 后期很少对语言本身的新变化、新内容进行跟踪学习和知识更新 , 甚至连已经发布了好几年的Python3.6的新特性都缺乏了解 。
本文列举了Python3.6、3.7、3.8三个版本的新特性 , 学习它们有助于提高对Python的了解 , 跟上最新的潮流 。
一、Python3.6新特性1、新的格式化字符串方式新的格式化字符串方式 , 即在普通字符串前添加 f
或 F
前缀 , 其效果类似于str.format()
。 比如
name = \"red\"print(f\"He said his name is {name.\")
# 'He said his name is red.'
相当于:
print(\"He said his name is {name.\".format(**locals()))
此外 , 此特性还支持嵌套字段 , 比如:
import decimal
width = 10precision = 4value = https://mparticle.uc.cn/api/decimal.Decimal(/"12.34567\")
print(f\"result: {value:{width.{precision\")
#'result: 12.35'
2、变量声明语法可以像下面一样声明一个变量并指定类型:
from typing import List Dict
primes: List[int
= [
captain: str # 此时没有初始值
class Starship:
stats: Dict[str int
= {
3、数字的下划线写法允许在数字中使用下划线 , 以提高多位数字的可读性 。
a = 1_000_000_000_000_000 # 1000000000000000b = 0x_FF_FF_FF_FF # 4294967295
除此之外 , 字符串格式化也支持_
选项 , 以打印出更易读的数字字符串:
'{:_'.format(1000000) # '1_000_000''{:_x'.format(0xFFFFFFFF) # 'ffff_ffff'
4、异步生成器在Python3.5中 , 引入了新的语法 async 和 await 来实现协同程序 。 但是有个限制 , 不能在同一个函数体内同时使用 yield 和 await 。 Python3.6中 , 这个限制被放开了 , 允许定义异步生成器:
async def ticker(delay to):\"\"\"Yield numbers from 0 to *to* every *delay* seconds.\"\"\"
for i in range(to): yield i await asyncio.sleep(delay)
5、异步解析器允许在列表list、集合set 和字典dict 解析器中使用 async 或 await 语法 。
result = [i async for i in aiter() if i % 2
result = [await fun() for fun in funcs if await condition()
6、新增加模块标准库(The Standard Library)中增加了一个新的模块:secrets
。 该模块用来生成一些安全性更高的随机数 , 用于管理passwords account authentication security tokens 以及related secrets等数据 。
7、其他新特性
- 新的 PYTHONMALLOC 环境变量允许开发者设置内存分配器 , 以及注册debug钩子等 。
- asyncio模块更加稳定、高效 , 并且不再是临时模块 , 其中的API也都是稳定版的了 。
- typing模块也有了一定改进 , 并且不再是临时模块 。
- datetime.strftime 和 date.strftime 开始支持ISO 8601的时间标识符%G %u %V 。
- hashlib 和 ssl 模块开始支持OpenSSL1.1.0 。
- hashlib模块开始支持新的hash算法 , 比如BLAKE2 SHA-3 和 SHAKE 。
- Windows上的 filesystem 和 console 默认编码改为UTF-8 。
- [霸王龙]地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 产业气象站|散热效果大大下降,CPU硅脂应该这样涂!涂多了得不偿失
- 「霸王龙」地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 大卫聊科技|中国首富原来是京东幕后大老板?低调过头了!,有多少人不知道
- 大头哥哥说娱乐|而自己却还不知道?教你几招快速分辨真假好友,微信已被好友删除
- Python之王|Pandas数据合并与拼接的5种方法
- 北峰电讯|你知道几个?,警用对讲机全是PDT?警察常用的模拟对讲机频段
- 王石头科技|30系列还值得买吗,应该选择哪款?,华为Mate 40要来了,Mate
- 霸王龙:地球最强“娃娃鱼”,称霸世界数万年,霸王龙:就知道欺负我
- 影弟提名1|总是打电话催你“换套餐”?可能很多人都不知道,为什么移动客服