2010-05-04 81 views
1
#!/usr/bin/python 

from string import Template 

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

print s 

錯誤我得到的是模板字符串Python 2.5的錯誤

<string.Template object at 0x81abdcc> 

預期的效果我正在尋找的是:李,回家李

回答

7

你需要看的substitute返回值。它爲您提供了替換執行的字符串。

print s.substitute(x='lee') 

模板對象本身(s)不被改變。這使您可以使用相同的模板對象執行多個替換。

3

你沒有得到一個錯誤:你正在得到你所要求的 - 模板本身。爲了達到您想要的結果,

print s.substitute(x='lee') 

模板,就像字符串,可變對象:你的模板調用(或字符串),任何方法都絕不能改變該模板 - 它只能產生一個單獨的結果你可以使用它。這當然適用於.substitute方法。你調用它,但忽略結果,然後打印模板 - 無疑你期望模板本身有所改變,但這不是它的工作原理。