Python 改进 f-strings 语法,解除封印,整合到统一的解析器中
在将于 10 月初发布的 Python 3.12 中,我们将看到 f-strings 语法带来了一些变化,新版取消了最初制定 f-strings 时制定的一些限制。经过这些变化,使得 f-strings 更加统一,成为一种可以直接整合到解析器中的正式化语法。这将会为终端用户和库开发者带来较大优势,同时也大大降低用于解析 f-strings 代码的维护成本。 最初设置 f-strings 限制是为了能够在不修改现有词法分析器的情况下将 f-strings 的解析实现到 CPython 中。但目前来看,这些限制反而带来了复杂性。比如: 在表达式部分中,无法使用引号字符来界定 f-strings >>> f'Magic wand: { bag['wand'] }' ^ SyntaxError: invalid syntax 之前考虑过的一种解决方法会导致在执行的代码中出现转义序列,这在 f-strings 中是被禁止的: >>> f'Magic wand { bag[\'wand\'] } string' SyntaxError: f-st...

