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()}
2 回目のループのように見えるということです。など - これにより、適切な定義が呼び出され、最終的にそれらの場所に必要な実際のコンテンツが埋められます。