使用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!继承

相关文章
相关标签/搜索