在理解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的任何其他内容之前被求值并在前面呈现一样。你知道吗
这是预期的行为吗?如果是,为什么? 还有,我怎样才能达到我想做的?你知道吗
是的,由于buffering,这是一个需要的行为,但是通过使用内置的
capture()
函数,您可以很容易地让它按您想要的方式工作。以下是工作示例:结果是
if (3 == 3)
。你知道吗相关问题 更多 >
编程相关推荐