[英]Python String Templates
我們使用字符串模板通過提供dict來替換Python String中的某些值。 它工作正常。 但是,盡管使用safe_substitute,此下面的代碼仍無法按預期工作。 知道為什么嗎?
from string import Template
obj = Template("$$Tag$$")
obj.safe_substitute({})
Output : '$Tag$' Expected : '$$Tag$$'
(As there is no value to replace in the dict supplied .)
如果我將'##'作為分隔符,也會對'####'發生同樣的問題。 誰知道為什么它忽略了額外的分隔符? 只是想了解幕后發生的事情。
從文檔 :
$$
是逃脫; 用$
代替。
如果您想加倍$
,則可以使用類似以下內容:
>>> obj = Template("$$$$Tag$$$$")
>>> obj.safe_substitute({})
'$$Tag$$'
>>> obj.safe_substitute({'Tag':1})
'$$Tag$$'
>>> obj = Template("$$$Tag$$$") #First $ escapes the second $
>>> obj.safe_substitute({'Tag':1})
'$1$$'
從文檔:
“ $$”是一個轉義符; 它被替換為單個“ $”。
您必須在輸出中為每個美元符號放置兩個美元符號:
>>> Template('$$$$Tag$$$$').substitute()
'$$Tag$$'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.