我有一个字符串,我想在其中使用括号,但也可以利用f字符串特性。有没有适用于这个的语法?

这里有两种方法不起作用。我想包括文字文本{bar}作为字符串的一部分。

foo = "test"
fstring = f"{foo} {bar}"

name 'bar'没有定义

fstring = f"{foo} \{bar\}"

f-string表达式部分不能包含反斜杠

预期的结果:

'test {bar}'

编辑:看起来这个问题的答案与我如何在字符串中打印文字大括号字符并在其上使用.format相同?但是只有当你知道str.format使用与f-string相同的规则时,你才能知道这一点。希望这个问题能让f字符串搜索者和这个答案联系起来。


尽管解析器有一个自定义语法错误,但在对常规字符串调用.format时也可以使用相同的技巧。

使用双卷:

>>> foo = 'test'
>>> f'{foo} {{bar}}'
'test {bar}'

这里的规范和文档中都提到了。