首页 > 代码库 > Python3.2官方文档翻译--模板

Python3.2官方文档翻译--模板

8.2 模板 


String模块包含一个用途广泛的类,此类为最终用户的编辑提供了简单的语法支持。这让用户不修改应用程序的前提下实现他们应用程序的定制。

这种格式使用$加有效的python标识符(数字、字母和下划线)形式的占位符名称。通过在占位符两侧使用大括号便可以不用空格分隔在其后面跟随更多的字母和数字字符。使用$$来创建一个单独$转码字符。

>>> from string import Template

>>> t = Template(${village}folk send $$10 to $cause.)

>>> t.substitute(village=Nottingham, cause=the ditch fund)

Nottinghamfolk send $10 to the ditch fund.

当占位符在字典或者关键字参数中没有被提供时,方法substitute()就会抛出一个关键错误。对于邮件合并分隔的应用程序中,用户提供的数据可能不完整。这是用safe_substitude()方法可能更加适合--如果数据丢失,它不会改变占位符。

>>> t = Template(Return the $item to $owner.)

>>> d = dict(item=unladen swallow)

>>> t.substitute(d)

Traceback (most recent call last):

. . .

KeyError: owner

>>> t.safe_substitute(d)

Return the unladen swallow to $owner.

模板派生类可以指定一个自定义分隔符。例如,图像浏览器的批量命名工具类可以选择使用百分号作为占位符,像当前日期,图片序列号或文件格式。

 

针对模板化的另一个应用程序就是从多种输出格式的细节中分离出程序逻辑。这就使得xml文件、简单文本报表以及html网页定制模板称为可能。