特性 | 代码 | 对比 |
---|---|---|
格式化字符串方式 | name = "red" print(f"He said his name is {name}.") # 'He said his name is red.' |
print("He said his name is {name}.".format(name)) |
- | import decimal width = 10 precision = 4 value = decimal.Decimal("12.34567") print(f"result: {value:{width}.{precision}}") #'result: 12.35' |
- |
变量声明 | primes: List[int] = [] captain: str # 此时没有初始值 |
- |
数字的下划线 | a = 1_000_000_000_000_000 # 1000000000000000 b = 0x_FF_FF_FF_FF # 4294967295 '{:_}'.format(1000000) # '1_000_000' '{:_x}'.format(0xFFFFFFFF) # 'ffff_ffff' |
- |
异步生成器 | 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) |
- |
异步解析器 | result = [i async for i in aiter() if i % 2] result = [await fun() for fun in funcs if await condition()] |
- |
新增加模块 | 标准库(The Standard Library)中增加了一个新的模块:secrets。该模块用来生成一些安全性更高的随机数,用于管理passwords, account authentication, security tokens, 以及related secrets等数据。 | - |
其他新特性 | ||
- | 新的 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。 | |
- | json模块中的 json.load() 和 json.loads() 函数开始支持 binary 类型输入。 |
网友评论