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


Posted in Python onJanuary 22, 2019

对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 相关文章推荐
Python 除法小技巧
Sep 06 Python
介绍Python中几个常用的类方法
Apr 08 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
Python while 循环使用的简单实例
Jun 08 Python
Python实现word2Vec model过程解析
Dec 16 Python
python中的 zip函数详解及用法举例
Feb 16 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Python threading.local代码实例及原理解析
Mar 16 Python
pandas数据拼接的实现示例
Apr 16 Python
python 牛顿法实现逻辑回归(Logistic Regression)
Oct 15 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
python实现公司年会抽奖程序
Jan 22 #Python
对python函数签名的方法详解
Jan 22 #Python
python实现大转盘抽奖效果
Jan 22 #Python
Python函数返回不定数量的值方法
Jan 22 #Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 #Python
Python Pillow Image Invert
Jan 22 #Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 #Python
You might like
php实现在服务器上创建目录的方法
2015/03/16 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python 对象中的数据类型
2017/05/13 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
python中的协程深入理解
2019/06/10 Python
Django中modelform组件实例用法总结
2020/02/10 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
青年教师培训方案
2014/02/06 职场文书
科级干部考察材料
2014/02/15 职场文书
签约仪式致辞
2015/07/30 职场文书
我爱我班主题班会
2015/08/13 职场文书
创业计划书之农家乐
2019/10/09 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫