簡體   English   中英

Python字符串模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM