Python中使用Template类进行字符串格式化

拾柒
拾柒
发布时间:2026-10-14 | 5人浏览过
原创

本文介绍Python中利用string模块的Template类进行字符串格式化的方法。通过导入Template类并实例化,可以使用substitute方法替换占位符。默认定界符为$,也可通过继承Template类并重写delimiter属性来自定义定界符,实现更灵活的字符串替换操作。

Python Template字符串格式化简介

在Python中,除了传统的%操作符、用于替代%的format方法以及Python 3.6引入的f-string这几种字符串格式化方式外,还可以使用Template对象来实现字符串格式化。

可以通过from string import Template语句导入Template类。

实例化Template类时,需要传入一个包含占位符的模板字符串作为参数。

Template类基础与默认定界符


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

Template类默认使用$符号作为定界符(delimiter)。

使用substitute方法进行字符串替换


# 默认的定界符是$,即会将$之后内容匹配的字符串进行替换
s = Template('hello, $world!')
print(s.substitute(world='python'))
# hello, python!

实例化Template类后,会得到一个对象(例如s),调用该对象的substitute方法并传入替换数据字典,该方法将返回替换后的字符串结果。

若需修改默认的定界符,可以创建一个继承自Template的子类,并在子类中覆盖类属性delimiter,将其赋值为期望的新定界符。

自定义定界符的实现方法


# 可以通过继承Template类的方式进行替换
class CustomerTemplate(Template):
  delimiter = '*'

t = CustomerTemplate('hello, *world!')
print(t.substitute(world='python'))
# hello, python!

在上述示例中,无论是否修改定界符,最终输出结果均为hello, python!。

以上即为使用Template类格式化Python字符串的完整介绍,希望能为读者提供参考与帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表