代码构成:
!/usr/bin/python
# -*- coding:utf-8 -*-
#time:2015/3/18
#function:替换字符串的子串
import string
msg = string.Template('this is $thing')
print msg.substitute(thing='test')
print msg.substitute(thing=1) #小括号内直接传递关键字参数,好记好用。
print msg.substitute({'thing':'test1'}) #字典参数,并调用
#当含有多个关键字需要替换时:
text = '''Dear $name,
if you don't find room $room ,Please tall us.'''
new_msg = string.Template(text)
print new_msg.substitute({'room':201,'name':'Tom'}) #用字典参数
print new_msg.substitute(room=301,name='David') #直接传值
#将变量交给locals(),此函数将创建一个字典,key就是本地变量,本地变量的值可以通过key来访问:
local = string.Template('$name1 and $name2 are good friends')
name1 = 'Lily'
name2 = 'Nancy'
print local.substitute(locals())
print local.substitute(locals(),name2='Tom') #当出现参数传递发生冲突,关键字参数优先
</pre><pre>
执行结果:
知识点:
讲的是string.Template模板功能与substitute的结合使用。
分别用直接传递关键字参数和使用字典两种方式。这两种方式在使用时的格式略有区别,个人喜欢直接传递关键字参数。
讲解locals(),适用于已给出关键字参数的情况,它将本地的变量全部作为字典的key,函数需要调用哪些变量,locals()都可以去给出相应的值,当出现冲突时,以关键字参数优先。
心得:
水滴石穿!