Python 3.8.0稳定版
部分新特性:
• PEP 572,赋值+表达式
:=可以将一个表达式或者一个
if (n := len(a)) > 10:#表达式仍然用,赋值也放一起,后面不用多次写表达式,直接写n即可,可以为后面的重复使用省一次 print(f"List is too long ({n} elements, expected <= 10)")
• PEP 570,仅位置的参数
def f(a, b, /, c, d, *, e, f): print(a, b, c, d, e, f)
/左侧必须为之传参,右侧c,d可以是关键字可以是位置传参,e,f必须关键字传参
• PEP 587,Python初始化配置(改进嵌入)
• PEP 590,Vectorcall:用于CPython的快速调用协议
• PEP 578,运行时审核挂钩
• PEP 574,带外数据的Pickle协议5
• Typing相关(Typing-related):PEP 591,PEP 586和PEP 589
• 并行文件系统缓存,用于编译的字节码
• 调试版本与发行版本共享ABI
• typed_ast被合并回CPython
• LOAD_GLOBAL现在快40%
• pickle现在默认使用协议4,提高了性能