151

我有一个字符串,我想要花括号,但也利用 f-strings 功能。是否有一些适用于此的语法?

这是它不起作用的两种方法。我想将文字文本{bar}作为字符串的一部分。

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

NameError: name 'bar' is not defined

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

SyntaxError: f-string expression part cannot include a backslash

期望的结果:

'test {bar}'

编辑:看起来这个问题与如何在字符串中打印文字花括号字符并在其上使用 .format 具有相同的答案?,但只有知道它str.format使用与 f 字符串相同的规则时才能知道。所以希望这个问题在将 f-string 搜索者与这个答案联系起来时有价值。

4

1 回答 1

241

尽管解析器存在自定义语法错误,但与调用常规字符串 相同的技巧。.format

使用双卷曲:

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

它在此处的规范和此处的文档中有所提及。

于 2017-03-01T00:37:00.887 回答