您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Jinja2中的宏递归

5b51 2022/1/14 8:23:37 python 字数 1971 阅读 595 来源 www.jb51.cc/python

我正在使用Jinja 2.8模板引擎.我正在尝试编写一个模板,它将遍历树结构并从该树输出信息.要做到这一点,我试图使用一个调用自己的宏,似乎不起作用.这个简单的递归宏也不起作用:{% macro factorial(n) %} {% if n > 1 %} {{ n }} * {{ factorial(n-1) }} {% endif

概述

我正在使用Jinja 2.8模板引擎.我正在尝试编写一个模板,它将遍历树结构并从该树输出信息.要做到这一点,我试图使用一个调用自己的宏,似乎不起作用.

这个简单的递归宏也不起作用:

{% macro factorial(n) %}
  {% if n > 1 %}
    {{ n }} * {{ factorial(n-1) }}
  {% endif %}
{% endmacro %}

{{ factorial(3) }}

在Jinja代码的第三行引发运行跟随错误.

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中的宏递归所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶