在了解 Mako(Python 模板引擎)的过程中,我开始使用 defs 构造。
我尝试做的一件事是从 def 调用中生成一个通用的“if”语句(比如 JavaScript 语句)。正文如下:
<%def name="if_statement(x)">if (${x})</%def>
<%def name="sample_condition()">3 == 3</%def>
${if_statement(sample_condition())}
输出不是预期的if(3 == 3)
,而是3 == 3if()
,就像if_statement
' 的参数在 def 的任何其他内容之前被评估并呈现在前面一样。
这是预期的行为吗?如果是,为什么?另外,我怎样才能实现我想要做的事情?