【问题标题】:sameas condition for equality test in jinja2 templatejinja2模板中相等测试的sameas条件
【发布时间】:2021-11-25 19:10:51
【问题描述】:

jinaj2 中的sameas() 是否严格检查布尔值(真假?)

它与相等测试的工作方式不同,我想知道除了检查布尔值之外它的用例是什么。

"检查一个对象是否指向同一个内存地址..."

https://jinja.palletsprojects.com/en/2.10.x/templates/#sameas

【问题讨论】:

    标签: ansible jinja2


    【解决方案1】:

    不,它是实例检查,而不是使用 == 在 python 中会调用对象的 __equals__ 方法,这可能会被覆盖,因此会做一些意想不到的事情

    - debug:
        msg: |
         {%- set a = {"something": True} -%}
         {%- set b = {"something": True} -%}
         equals = {{ a == b }}
         sameas = {{ a is sameas b }}
    

    产量

    ok: [localhost] =>
      msg: |-
        equals = True
        sameas = False
    

    我确信它有一些很好的用例,但在我多年的 ansible-ing 中,我从来没有使用过它,所以把它作为一个数据点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 2020-12-10
      • 2013-12-19
      • 2011-01-01
      相关资源
      最近更新 更多