2

假设我有两个变量“一”和“二”,它们分别等于 1 和 2。如果可能的话,我怎样才能把它们分成一个 mako 模板?我想要类似的东西:

${"{0:.2f}".format(one/two)}

我想在模板中输出的结果是:0.50

我正在使用 python 2.x。

4

1 回答 1

2

您需要添加division到的future_imports参数Template

>>> from mako.template import Template
>>> print Template("${a/b}").render(a=1, b=2)
0
>>> print Template("${a/b}", future_imports=['division']).render(a=1, b=2)
0.5
>>> print Template("${'{0:.2f}'.format(a/b)}", future_imports=["division"]).render(a=1, b=2)
0.50

引用自文档

future_imports– 要从中导入的名称的字符串列表__future__。这些将被连接成一个逗号分隔的字符串并插入到模板的开头,例如futures_imports=['FOO', 'BAR'] 结果为from __future__ import FOO, BAR. 如果您对使用新除法运算符之类的功能感兴趣,则必须使用 future_imports它来将其传达给渲染器,否则导入将不会作为生成代码中的第一个执行语句出现,因此不会产生预期的效果。

于 2013-08-20T21:11:28.863 回答