python的Template使用指南

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

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

from string import Template

登录后复制

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

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

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

立即学习“Python免费学习笔记(深入)”;

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 Templateclass 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()

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2290987.html

(0)
上一篇 2025年2月28日 00:42:18
下一篇 2025年2月23日 20:34:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python常用模块用法分析

    本文较为详细的讲述了python中常用的模块,分享给大家便于大家查阅参考之用。具体如下: 1.内置模块(不用import就可以直接使用) 常用内置函数: help(obj) 在线帮助, obj可是任何类型callable(obj) 查看一个…

    编程技术 2025年2月28日
    200
  • python之yield表达式学习

    python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 复制代码 代码如下:mylist = [1,2,3]for item in mylist:    pri…

    编程技术 2025年2月28日
    200
  • python实现斐波那契递归函数的方法

    本文以一个简单的实例讲述了python实现斐波那契数列数列递归函数的方法,代码精简易懂。分享给大家供大家参考之用。 主要函数代码如下: def fab(n): if n==1: return 1 if n==0: return 0 else…

    编程技术 2025年2月28日
    200
  • python多线程编程中的join函数使用心得

    今天去辛集买箱包,下午挺晚才回来,又是恶心又是头痛。恶心是因为早上吃坏东西+晕车+回来时看到车祸现场,头痛大概是烈日和空调混合刺激而成。没有时间没有精神没有力气学习了,这篇博客就说说python中一个小小函数。 由于坑爹的学校坑爷的专业,多…

    2025年2月28日
    200
  • Linux(CentOS7)安装最新版Python

    在CentOS7系统中安装最新版的Python,可以通过以下步骤来实现: 确认系统已安装依赖库 在安装Python之前,需要确保系统已安装必要的依赖库。 常见的依赖库包括: gcc编译器zlib和openssl开发库readline和sql…

    2025年2月28日
    200
  • Python深入学习之闭包

    闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的…

    编程技术 2025年2月28日
    200
  • Python中函数的用法实例教程

    本文以数值计算为例讲述了python中函数的用法,分享给大家供大家参考借鉴之用。具体如下: 我们都知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积。假设我们需要计算3个不同大小的圆的面积: r1 =…

    编程技术 2025年2月28日
    200
  • Python Tkinter基础控件用法

    本文实例展示了python tkinter基础控件的用法,分享给大家供大家参考之用。具体方法如下: # -*- coding: utf-8 -*-from Tkinter import *def btn_click(): b2[‘text’…

    2025年2月28日
    200
  • Python深入学习之特殊方法与多范式

    python一切皆对象,但同时,python还是一个多范式语言(multi-paradigm),你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(还有函数式、声明式等,我们暂不深入)。python的多范式依…

    编程技术 2025年2月28日
    200
  • python中的reduce内建函数使用方法指南

    官方解释: Apply function of two arguments cumulatively to the items of iterable, from left to right, so as to reduce the ite…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论