1.什么是template

template是python中的string库的一部分

使用template可以不编辑应用就可以改变其中的数据

模板还可以被他的子类修改

2. template如何工作的

template是含有占位符的字符串

用字典将值映射到模板中

占位符后面跟着的变量名要符合python语法中的变量名规则

Template(“$name is friends with $friend”)

3.举例from string import Template

def main():

cart = []

cart.append(dict(item='coke',price=11,qty= 1))

cart.append(dict(item='cake',price=12,qty=6))

cart.append(dict(item='fish',price = 1,qty =4))

t = Template("$qty * $item = $price")

total = 0

print "Cart"

for data in cart:

print t.substitute(data)

total += data["price"]

print "Total: %s"%(total,)

if __name__ == "__main__":

main()

4.template 异常error

占位符所引导的变量没与字典匹配的话,解释器会抛出KeyError。因为我们的字典里没有这个键。

一些占位符引导的变量是不好的。比如,这个变量以数字开头。这会使解释器抛出ValueError异常。

5. safe_substitute()

如果我们使用这个函数,template可以处理这些异常并返回给我们字符串。

如果哪个占位符变量有异常,返回的这个字符串中这个占位符就没有变化,不会被替代。

比如,Template(“$name had $money”).如果money这里有错误,那么使用safe_substitute()后输出的就是“James had $money”

6.可以使用自己喜欢的符号引导占位变量

我们要做的就是重载类属性delimiter,并修改相应的模板字符串和变量。这里我们用C语言的取地址符号替代默认的美元$符号。from string import Template

class MyTemplate(Template):

delimiter = '&'

def main():

cart = []

cart.append(dict(item='coke',price=11,qty= 1))

cart.append(dict(item='cake',price=12,qty=6))

cart.append(dict(item='fish',price = 1,qty =4))

t = MyTemplate("&qty * &item = &price")

total = 0

print "Cart"

for data in cart:

print t.substitute(data)

total += data["price"]

print "Total: %s"%(total,)

if __name__ == "__main__":

main()

运行结果还是一样的。

Cart

1 * coke = 11

6 * cake = 12

4 * fish = 1

Total: 24

7.小提示

如果你行输出delimiter的话,就要连续输入两个delimiter。可以认为,delimiter就是转义符。比如,在delimiter是’$’的情况下:

>>> t = Template(“$you owe me $$0.”)

>>> t.substitute(dict(you=’James’))

“James owe me $0.”

如果你还想改变占位符后面的变量名的命名规则,这也可以。继承Template类之后,改变类属性idpattern,其默认值为r”[_a-z][_a-z0-9]*”。

如果你还有需求,想要改变一个单词的某一部分。这也行。只需将占位符后面的变量名加上{}。比如:

>>> t = Template(“The ${back}yard is far away.”)

>>> t.substitute(dict(back=’ship’))

“The shipyard is far away.”

python template_[笔记]python template相关推荐

  1. (转载)[python学习笔记]Python语言程序设计(北理工 嵩天)

    作者:九命猫幺 博客出处:http://www.cnblogs.com/yongestcat/ 欢迎转载,转载请标明出处. 如果你觉得本文还不错,对你的学习带来了些许帮助,请帮忙点击右下角的推荐 阅读 ...

  2. 学python安装-Python学习笔记-Python安装

    Python安装 文章简介:本文介绍在不同操作系统中搭建Python编程环境. 一 搭建编程环境 在不同的操作系统中,Python存在细微的区别,下面介绍两个主要的Python版本. 1.1 Pyth ...

  3. Python学习笔记 - Python数据类型

    前言 在Python语言中,所有的数据类型都是类,每一个变量都是类的"实例".没有基本数据类型的概念,所以整数.浮点数和字符串也都是类. Python有6种标准数据类型:数字.字符 ...

  4. Python学习笔记 - Python语言概述和开发环境

    一.Python简介 1.1  Python语言简史 Python由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无聊时间,决心开发一门 ...

  5. Python学习笔记 - Python语法基础

    前言 本篇博文主要介绍Python中的一些最基础的语法,其中包括标识符.关键字.内置函数.变量.常量.表达式.语句.注释.模块和包等内容. 一.标识符.关键字和内置函数 任何一种语言都离不开标识符和关 ...

  6. Python学习笔记 Python概述 编码规范 输出与输入 变量 标识符

    Python学习第一天 Python的概述 1.Python的优缺点 1.1 优点: 1.2 缺点: 2.Python的编码规范 3.注释 3.Python的输出与输入 4.Python中的变量 5. ...

  7. Python学习笔记--Python字符串连接方法总结

    声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的 ...

  8. python编程语法-Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  9. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

最新文章

  1. python的深拷贝与浅拷贝
  2. COCO API的克隆 - http://cocodataset.org/
  3. IEnumeratorTItem和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了...
  4. html 图像 ppt,用HTML设置的文本和图像.ppt
  5. C++:编译原理实验之词法分析器
  6. flink java生成流式数据
  7. 程序猿必须要知道的一个内容:客户端+服务端一(源码解析、建议收藏)
  8. SQL Server 更新数据表记录
  9. 关于阿里云快照收费机机制和说明
  10. 面试记录:面试两个人的不同结果
  11. JVM调优-Jva中基本垃圾回收算法
  12. 【DirectX3D - 5】渲染多路视频(单一窗口)
  13. 2021-2025年中国共享Web托管服务行业市场供需与战略研究报告
  14. 学习Pandas(Kaggle)
  15. 使用 yarn 安装时,报错node_modules\node sass:Command failed.
  16. 【MATLAB-app】如何使用键盘回调以及在app设计中应用
  17. DTS、杜比2.0、杜比5.1、AC3各是什么意思
  18. 旋转编码器EC11调试心得
  19. Java ZipOutputStream 的使用,实现压缩文件
  20. 基于 RISC-V SoC 的可配置 FFT 系统设计(2)RISC-V 的起源及其发展历程

热门文章

  1. 想转行到IT,心里不定,不知道怎么做?
  2. 腾讯云 + Linux
  3. ESP32 开发笔记(五)XPT2046 触摸
  4. PS入门(1-6) 颜色的选取
  5. 免费直播!真.零基础能学会的前端入门教程,还带实操抖音风格字体特效!
  6. No input file specified 解决方案(thinkPhp5.1)
  7. 计算机打印要先安装驱动吗,手把手教你电脑怎么安装打印机驱动
  8. 简略阅读《Guiding Deep Learning System Testing using Surprise Adequacy》
  9. 类与对象01_旺旺老师Java学习解决方案_第一季
  10. Java 构造器之构造器的隐式调用和显式调用