探索 Python 3.8 的新变化

想了解 Python 3.8 的最新特性以及与 3.7 版本的差异吗?这篇文章将为您详细解读。

新功能

  • 编译缓存优化: Python 3.8 引入了一种全新的编译字节码文件并行缓存机制。您可以使用新的 PYTHONPYCACHEPREFIX 设置(或 -X pycache_prefix 命令行选项)将隐式字节码缓存配置为使用独立的并行文件系统树,而不是默认的每个源目录下的子目录。您可以使用 sys.pycache_prefix 来查看缓存位置(如果值为 None,则表示使用默认的 __pycache__ 子目录)。

  • 语言更新:

    • 解除了在 finally 子句中使用 continue 语句的限制。
    • int 类型新增了 as_integer_ratio() 方法,与现有的 float.as_integer_ratio() 方法保持一致。
    • 现在支持 N{name} 形式的 Unicode 字符转义。
    • dictdictviews 现在可以使用 reversed() 方法进行反向迭代。
    • 对函数调用中允许的关键字名称语法进行了进一步的限制,例如,不再允许 f((keyword)=arg) 这种形式。
    • 现在允许在 yieldreturn 语句中使用无括号的可迭代对象解包。
    • 将非有效转义序列的反斜杠字符对生成的警告从 DeprecationWarning 更改为 SyntaxWarning
    • 在某些情况下,如果在元组或列表表达式中缺少逗号,编译器现在会生成 SyntaxWarning
  • 其他改进

    • datetime.datedatetime.datetime 对象与 datetime.timedelta 对象之间的算术运算现在返回子类的实例,而不是基类。
    • 当 Python 解释器被 Ctrl-C (SIGINT) 中断且 KeyboardInterrupt 异常未被捕获时,Python 进程现在会通过 SIGINT 信号或正确的退出代码退出。
tgz 文件大小:22.23MB