使用 Python 3.12,我可以毫无错误地执行以下操作:
a = "abc"
s = f"{a.replace("b", "x")}"
注意嵌套的
"
字符。
对于 Python 3.6,同样会抛出语法错误,因为这部分中缺少关闭
)
和 }
f"{a.replace("
。
这是为什么呢?我预计 3.12 也会出现语法错误。
Python 3.12 实现 PEP 701,允许使用与外部 f 字符串本身相同的引号字符
>>> songs = ['Take me back to Eden', 'Alkaline', 'Ascensionism']
>>> f"This is the playlist: {", ".join(songs)}"
'This is the playlist: Take me back to Eden, Alkaline, Ascensionism'
因此,如果您在一个系统上运行 3.12,而在另一个系统上运行旧版本,则差异是可以预料的。
您可以将
"
更改为 '
s = f'{a.replace("b", "x")}'