gpt4 book ai didi

python - 在 Mako 模板中将 def 作为函数调用

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:44 25 4
gpt4 key购买 nike

我想使用 def作为一个函数,并从 if 中调用它 block :

<%def name="check(foo)">
% if len(foo.things) == 0:
return False
% else:
% for thing in foo.things:
% if thing.status == 'active':
return True
% endif
% endfor
% endif
return False
</%def>

% if check(c.foo):
# render some content
% else:
# render some other content
% endif

不用说,这种语法是行不通的。我不想只做一个表达式替换(并只渲染 def 的输出),因为逻辑是一致的,但渲染的内容因地而异。

有办法吗?

编辑:将逻辑包含在 <% %> 中的 def 中似乎是要走的路。

最佳答案

只需在 plain Python 中定义整个函数即可:

<%!
def check(foo):
return not foo
%>
%if check([]):
works
%endif

或者您可以只在 Python 中定义函数并将其传递给上下文。

关于python - 在 Mako 模板中将 def 作为函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com