模板字符串python 2.5错误

时间:2010-05-04 15:57:08

标签: python

#!/usr/bin/python

from string import Template

s = Template('$x, go home $x')
s.substitute(x='lee')

print s

我得到的错误是

<string.Template object at 0x81abdcc>
我期待的结果是:李,回家李

3 个答案:

答案 0 :(得分:7)

您需要查看substitute的返回值。它为您提供了执行替换的字符串。

print s.substitute(x='lee')

模板对象本身(s)未更改。这使您能够使用相同的模板对象执行多次替换。

答案 1 :(得分:3)

你没有收到错误:你得到了你所要求的 - 模板本身。为了达到理想的效果,

print s.substitute(x='lee')

模板(如字符串)是可变对象:您在模板(或字符串)上调用的任何方法都不能更改该模板 - 它只能生成您可以使用的单独结果。当然,这适用于.substitute方法。你正在调用它,但忽略了结果,然后打印模板 - 毫无疑问,你希望模板本身能以某种方式被改变,但这不是它的工作方式。

答案 2 :(得分:1)

print s.substitute(x='lee')