使用Template格式化Python字符串的方法

yipeiwu_com6年前Python基础

对Python字符串,除了比较老旧的%,以及用来替换掉%的format,及在python 3.6中加入的f这三种格式化方法以外,还有可以使用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

字符串默认以%作为定界符

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

实例化Template之后,返回对象s,调用对象s的substitute,传入替换的数据,最终返回替换之后的结果。

如果需要对定界符进行修改,可以创建一个Template的子类,在子类中覆盖掉Template的类属性delimiter,赋值为需要重新设定的定界符。

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

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

上面的例子中,输出和未修改定界符之前是一样的,都是hello, python!

以上这篇使用Template格式化Python字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

django多个APP的urls设置方法(views重复问题解决)

django多个APP的urls设置方法(views重复问题解决)

Django在做url设置时,如果有两个APP,那么再import时会出错 解决的方法有两种: 方法一:在每个APP里设置单独的url.py文件,最后在总的url再进行设置: 1.分别...

python编写计算器功能

python编写计算器功能

本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些启发 实验前提 因为是带图形界面的,所以...

python里运用私有属性和方法总结

python里运用私有属性和方法总结

如何在PYTHON里运用私有属性和方法 class File: def __init__(self, name): self.name = name sel...

Python中下划线的使用方法

本文将讨论Python中下划线(_)字符的使用方法。我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已。 单下划线(_) 通常情况下,会在以...

python3使用SMTP发送HTML格式邮件

一、设置开启SMTP服务并获取授权码 可以参考第一篇文章,这里不再赘述:【一】Python3使用SMTP发送简单文本邮件 二、使用Python3 发送HTML格式的邮件 0.使用的环境为...