Named用M替换字符串中的

2024-05-08 16:29:37 发布

您现在位置:Python中文网/ 问答频道 /正文

在Mako中创建模板时,我需要编写如下内容:${_('Hello, %(fname)s %(lname)s') % {'fname':'John','lname':'Doe'}}

在编写语法分析时,我一直得到SyntaxException:(SyntaxError)意外的EOF。有什么方法可以做同样的事吗?在

${_('Hello, %s %s') % ('John', 'Doe')}可以工作,但如果需要,它不允许在更改语言时更改替换的顺序。在

谢谢。在


Tags: 方法模板语言内容hello顺序makojohn
2条回答

尝试新的Python字符串格式:

>>> "{foo} {bar}".format(foo="foo", bar="bar")
'foo bar'
>>> "{foo} {bar}".format(**{"foo": "Hello", "bar": "World!"})
'Hello World!'

它看起来更好,而且经得起未来的考验。在

在Mako的${}中使用{}很复杂;显然,Mako在找到第一个}之后停止解析表达式。一种可能的解决方法是使用dict()而不是{}

${_('Hello, %(fname)s %(lname)s') % dict(fname='John', lname='Doe')}

相关问题 更多 >