#!/usr/bin/python
from string import Template
s = Template('$x, go home $x')
s.substitute(x='lee')
print s我得到的错误是
<string.Template object at 0x81abdcc>我想要的结果是:李,回家吧李
发布于 2010-05-04 23:59:45
您需要查看substitute的返回值。它给出了执行了替换的字符串。
print s.substitute(x='lee')模板对象本身(s)不变。这使您能够使用相同的模板对象执行多个替换。
发布于 2010-05-05 00:01:41
您得到的不是错误:您得到的正是您所要求的--模板本身。为了达到您的预期效果,
print s.substitute(x='lee')与字符串一样,模板也是而不是可变对象:在模板(或字符串)上调用的任何方法永远不会改变该模板--它只能产生一个单独的结果,供您使用。当然,这也适用于.substitute方法。您正在调用它,但忽略了结果,然后打印模板--毫无疑问,您希望模板本身会以某种方式进行更改,但这不是它的工作方式。
发布于 2010-05-05 00:00:04
print s.substitute(x='lee')https://stackoverflow.com/questions/2766872
复制相似问题