假设我有两个变量“一”和“二”,它们分别等于 1 和 2。如果可能的话,我怎样才能把它们分成一个 mako 模板?我想要类似的东西:
${"{0:.2f}".format(one/two)}
我想在模板中输出的结果是:0.50
我正在使用 python 2.x。
您需要添加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
它来将其传达给渲染器,否则导入将不会作为生成代码中的第一个执行语句出现,因此不会产生预期的效果。