Template无疑是一个好东西,可以将字符串的格式固定下来,重复利用。同时Template也可以让开发人员可以分别考虑字符串的格式和其内容了,无形中减轻了开发人员的压力。

Template属于string中的一个类,所以要使用的话可以用以下方式调用from string import Template

Template有个特殊标示符$,它具有以下的规则:

它的主要实现方式为$xxx,其中xxx是满足python命名规则的字符串,即不能以数字开头,不能为关键字等

如果$xxx需要和其他字符串接触时,可用{}将xxx包裹起来(以前似乎使用'()',我的一本参考书上是这样写的,但是现在的版本应该只能使用'{}')。例如,aaa${xxx}aaa

Template中有两个重要的方法:substitute和safe_substitute.

这两个方法都可以通过获取参数返回字符串>>s=Template(There $a and $b)

>>print s.subtitute(a='apple',b='banana')

There apple and banana

>>print s.safe_substitute(a='apple',b='banbana')

There apple and banbana

还可以通过获取字典直接传递数据,像这样>>s=Template(There $a and $b)

>>d={'a':'apple','b':'banbana'}

>>print s.substitute(d)

There apple and banbana

它们之间的差别在于对于参数缺少时的处理方式。

Template的实现方式是首先通过Template初始化一个字符串。这些字符串中包含了一个个key。通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。这个方式的一个好处是不用像print ‘%s'之类的方式,各个参数的顺序必须固定,只要key是正确的,值就能正确插入。通过这种方式,在插入很多数据的时候就可以松口气了。可是即使有这样偷懒的方法,依旧不能保证不出错,如果key少输入了一个怎么办呢?

substitute是一个严肃的方法,如果有key没有输入,那就一定会报错。虽然会很难看,但是可以发现问题。

safe_substitute则不会报错,而是将$xxx直接输入到结果字符串中,如there apple and $b

这样的好处是程序总是对的,不用被一个个错误搞得焦头烂额。

Template可以被继承,它的子类可以进行一些‘个性化'操作...

通过修改delimiter字段可以将$字符改变为其他字符,如“#”,不过新的标示符需要符合正则表达式的规范。

通过修改idpattern可以修改key的命名规则,比如说规定第一个字符开头必须是a,这对规范命名倒是很有好处。当然,这也是通过正则表示实现的。from string import Template

class MyTemplate(Template):

delimiter = "#"

idpattern = "[a][_a-z0-9]*"

def test():

s='#aa is not #ab'

t=MyTemplate(s)

d={'aa':'apple','ab':'banbana'}

print t.substitute(d)

if name=='main':

test()

python template用法_python中Template的使用介绍相关推荐

  1. python end用法_python中end的使用方法

    python中end的使用方法 发布时间:2020-06-17 09:47:13 来源:亿速云 阅读:178 这篇文章给大家分享的是有关python中end的使用方法,小编觉得挺实用的,因此分享给大家 ...

  2. python try用法_python中的try的用法

    展开全部 try语句32313133353236313431303231363533e78988e69d8331333431366238是python里面的控制语句,与except,finally配合 ...

  3. python map用法_Python中ChainMap的一种实用用法

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 简而言之ChainMap:将多个字典视为一个,解锁Python超能力. Python标准库中的集合模块包含 ...

  4. python try用法_Python中如何使用try-except

    try-except是在python中用来引发异常的,那么,我们该怎么使用呢?下面我将简单介绍这个的用法,希望对大家有所帮助. 工具/原料 电脑 python 方法/步骤 1 首先,我们先介绍这个怎么 ...

  5. python数据格式简介_Python中数据类型时间的介绍(附代码)

    本篇文章给大家带来的内容是关于Python中数据类型时间的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.什么是时间数据类型 Python中表示时间类型的数据结构为 ...

  6. python yield用法_Python中迭代器和生成器的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  7. python map用法_Python中 map()函数的用法详解

    python map()函数问题 使用map()函数生成一个值D但是检测D的长度时,只能测一次,一次之后D似不知道你的dataSet 是什么数据,是否是从数据库取出来的结果游标, 如果是的 那么dat ...

  8. python timeit用法_python中的计时器timeit的使用方法

    本文介绍了python中的计时器timeit的使用方法,分享给大家,具体如下: timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过pytho ...

  9. python not用法_python中not、and和or的优先级与详细用法介绍

    前言 (小白专用)本次所分享的是python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 ...

最新文章

  1. 第15天学习Java的笔记(封装性,this,构造方法)
  2. 【转】Hibernate和IBatis对比
  3. Lecture 2 Asymptotic Notation
  4. Java性能调优:利用VisualVM进行性能分析
  5. 回测引擎代码分析流程图
  6. html表格怎么改圆角边框,Table元素设置圆角border
  7. 宝岛探险1(BFS)
  8. python遥感影像分类代码_Python 实现遥感影像波段组合的示例代码
  9. html5在线画板菱形怎么画,HTML5 Canvas 制作一个“在线画板”
  10. Python中的切片(详细篇)学起来喔
  11. java模拟抛硬币_用随机数模拟抛硬币
  12. 上周热点回顾(11.18-11.24)
  13. linux下rsync命令,linux上的rsync命令详解
  14. YOLO v2论文笔记
  15. basler相机参数简要中文说明_basler设置相机参数
  16. 2020年8月编程语言排行榜出炉:C语言位居第一,Java、Python位居二三
  17. SQL2000;安装程序配置服务器失败
  18. ISIS路由协议基础
  19. ORA-22858 invalid alteration of datatype
  20. 再见,Eclipse !

热门文章

  1. 10.4.4 使用ctypes调用kernel32.dll中的函数
  2. mybatis的工作原理
  3. JVM-程序计数器02
  4. 二叉搜索树(BFS)总结
  5. Qt修炼手册8_常用的容器类QVector和QList
  6. 静态链接中的那点事儿(1)
  7. [OS复习]程序装入技术、简单存储管理技术
  8. 如何编写一个Jquery插件
  9. delphi json
  10. jquery 隐藏表格某列