繁体   English   中英

Python Mako模板 - 如何基于上下文中的值动态决定调用哪个def或函数?

[英]Python Mako templating - How can I dynamically decide which def or function to call based on a value in the context?

我会在Mako文件中执行以下操作:

%for operation in operation_list:
    ${operation['name']}
    ${${operation['name']}Body()}
%endfor

<%def name="operationOneBody()">
   some stuff
</%def>

<%def name="operationTwoBody()">
   some other stuff
</%def>

基本上,我期望上下文将包含名称为“operationOne”和“operationTwo”的操作,我想动态决定插入哪个Mako Def。

${${operation['name']}Body()} ,想法是在内部$ {}标记${operation['name']}将解析为“operationOne”,然后是“operationTwo”和等等,这样的话外$ {}看起来像${operationOneBody()}第一次循环和${operationTwoBody()}第二次通过,等等-这将使适当DEFS得到调用,最终将填写我想要的那些地方的实际内容。

您可以将函数放入由操作名称键入的字典中。 我认为这应该做你想要的:

<% operations = { 'one': operationOneBody, 'two': operationTwoBody } %>

%for operation in operation_list:
    ${operation['name']}
    ${operations[operation['name']]()}
%endfor

<%def name="operationOneBody()">
   some stuff
</%def>

<%def name="operationTwoBody()">
    some other stuff
</%def>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM