對Python字符串,除了比較老舊的%,以及用來替換掉%的format,及在python 3.6中加入的f這三種格式化方法之外,還有能夠使用Template對象來進行格式化。python
from string import Template,能夠導入Template類。spa
實例化Template類須要傳入一個Template模板字符串。code
class Template(metaclass=_TemplateMetaclass): """A string class for supporting $-substitutions.""" delimiter = '$' idpattern = r'[_a-z][_a-z0-9]*' flags = _re.IGNORECASE def __init__(self, template): self.template = template
字符串默認以%做爲定界符orm
# 默認的定界符是$,即會將$以後內容匹配的字符串進行替換 s = Template('hello, $world!') print(s.substitute(world='python')) # hello, python!
實例化Template以後,返回對象s,調用對象s的substitute,傳入替換的數據,最終返回替換以後的結果。對象
若是須要對定界符進行修改,能夠建立一個Template的子類,在子類中覆蓋掉Template的類屬性delimiter,賦值爲須要從新設定的定界符。blog
# 能夠經過繼承Template類的方式進行替換 class CustomerTemplate(Template): delimiter = '*' t = CustomerTemplate('hello, *world!') print(t.substitute(world='python')) # hello, python!
上面的例子中,輸出和未修改定界符以前是同樣的,都是hello, python!繼承