#!/usr/bin/python
from string import Template
s = Template('$x, go home $x')
s.substitute(x='lee')
print s
我得到的错误是
<string.Template object at 0x81abdcc>
我期待的结果是:李,回家李
答案 0 :(得分:7)
您需要查看substitute
的返回值。它为您提供了执行替换的字符串。
print s.substitute(x='lee')
模板对象本身(s
)未更改。这使您能够使用相同的模板对象执行多次替换。
答案 1 :(得分:3)
你没有收到错误:你得到了你所要求的 - 模板本身。为了达到理想的效果,
print s.substitute(x='lee')
模板(如字符串)是不可变对象:您在模板(或字符串)上调用的任何方法都不能更改该模板 - 它只能生成您可以使用的单独结果。当然,这适用于.substitute
方法。你正在调用它,但忽略了结果,然后打印模板 - 毫无疑问,你希望模板本身能以某种方式被改变,但这不是它的工作方式。
答案 2 :(得分:1)
print s.substitute(x='lee')