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

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

本文介绍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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。