1.6.9. Python 3.5(2015/09/13)¶
新特性和改进¶
异步编程:
async
和await
关键字:引入了
async
和await
关键字,用于简化异步编程。这些关键字使得定义和调用异步函数更加直观和简洁。例如:async def fetch_data(): await some_async_function()
类型提示:
添加了对函数参数和返回值进行类型提示的功能,帮助开发者更好地理解代码的输入和输出。
这些标注可在运行时通过常用的 annotations 属性来访问,但是 不会在运行时执行任何类型检查
需要有一个单独的离线版类型检查器 (例如 mypy) 被用来按需执行源代码分析 例如:
def greeting(name: str) -> str: return f"Hello, {name}"
PEP 465:矩阵乘法运算符
@
:引入了新的矩阵乘法运算符
@
,用于执行矩阵乘法操作。例如:import numpy as np a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6], [7, 8]]) result = a @ b
PEP 448:扩展的解包通配符:
扩展了 * 可迭代对象解包操作符和 ** 字典解包操作符的允许使用范围
现在将可以在 函数调用 中使用任意数量的解包操作:
>>> print(*[1], *[2], 3, *[4, 5]) 1 2 3 4 5 >>> def fn(a, b, c, d): print(a, b, c, d) >>> fn(**{'a': 1, 'c': 3}, **{'b': 2, 'd': 4}) 1 2 3 4
元组、列表、集合与字典表示形式也允许多重解包
>>> *range(4), 4 (0, 1, 2, 3, 4) >>> [*range(4), 4] [0, 1, 2, 3, 4] >>> {*range(4), 4, *(5, 6, 7)} {0, 1, 2, 3, 4, 5, 6, 7} >>> {'x': 1, **{'y': 2}} {'x': 1, 'y': 2}
PEP 461:二进制序列的格式化:
为字节串和字节数组添加了类似于字符串格式化的功能。例如:
>>> b'Hello %b!' % b'World' b'Hello World!' >>> b'x=%i y=%f' % (1, 2.5) b'x=1 y=2.500000'