使用Template格式化Python字符串

對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!繼承

相關文章
相關標籤/搜索