概述
我正在使用Jinja 2.8模板引擎.我正在尝试编写一个模板,它将遍历树结构并从该树输出信息.要做到这一点,我试图使用一个调用自己的宏,似乎不起作用.
这个简单的递归宏也不起作用:
{% macro factorial(n) %}
{% if n > 1 %}
{{ n }} * {{ factorial(n-1) }}
{% endif %}
{% endmacro %}
{{ factorial(3) }}
UndefinedError: 'factorial' is undefined
Jinja是否支持递归宏?如何在Jinja中遍历嵌套数据结构?
{% macro factorial(n,return_value) -%}
--{{n}}
{%- if n > 1 -%}
{%- set return_value = n * return_value %} {#- perform operations on the variable return_value and send it to next stage -#}
{{- factorial(n-1,return_value) -}}
{%- else -%} {# Output the return value at base case #}
{{ return_value }}
{%- endif %}
{%- endmacro %}
{{ factorial(7,1) }}
我得到的输出是
--7--6--5--4--3--2--1 5040
总结
以上是编程之家为你收集整理的python – Jinja2中的宏递归全部内容,希望文章能够帮你解决python – Jinja2中的宏递归所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧