2017-03-01 67 views
4

我有一個字符串,我想要花括號,但也利用了f字符串功能。是否有一些適用於此的語法?如何在python 3.6中逃避f-strings?

以下兩種方式不起作用。我想將字面文本「{bar}」作爲字符串的一部分。

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

NameError:名稱 '棒' 沒有定義

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

語法錯誤:F-字符串表達式部分不能包括反斜槓

期望的結果:

'test {bar}' 

編輯:看起來像這個問題與How can I print literal curly-brace characters in python string and also use .format on it?有相同的答案,但你只能知道,如果你知道格式函數使用與f字符串相同的規則。所以希望這個問題有價值的將f字符串搜索者綁定到這個答案。

回答

9

雖然解析器中存在自定義語法錯誤,但same trick的作用與常規字符串相同。

使用雙花括號:

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

它在規範here和文檔here提到的真實。