jinja2模板的循环,第一个或最后一个要特殊处理?
用jinja2模板的循环,来特殊处理第一个或最后一个

在jinja2的模板循环里可以对第一个或者最后一个做特殊处理,用loop.first和loop.last来指示迭代到哪里了。

下面是一个例子,verilog例化时,最后一个port不加逗号。

{%- for port in ports %}
    .{{ port.name | left_align(20) }} ({{ port_with_width(port.name, port.msb, port.lsb) | left_align(20) }})
  {%- if loop.last -%}
     //{{ port.direction | dir_simple }}
  {%- else -%}
     , //{{ port.direction | dir_simple }}
  {%- endif %}
{%- endfor %}

除了loop.first和loop.last,还有loop.index、loop.index0、loop.length分别表示“1开始的序号”、“0开始的序号”、“总个数”。

感谢阅读,更多文章点击这里:【专栏:ExASIC】
公众号:ExASIC
分享数字集成电路设计中的经验和方法。分享让工作更轻松。
公众号二维码
留言(0)
还没有留言,来说两句吧。
留言需要 登录 或 注册(注册后需通过邮箱验证)。
相关文章