jinja2 模板中相等性测试的 sameas 条件
sameas condition for equality test in jinja2 template
jinaj2 中的 sameas()
是否严格检查布尔值(真,假?)
它与 equal 测试的工作方式不同,我想知道它除了检查布尔值之外还有什么用例。
“检查对象是否指向相同的内存地址...”
https://jinja.palletsprojects.com/en/2.10.x/templates/#sameas
不,它是例如检查,与使用 ==
相比,在 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 中,我从来没有使用过它,所以把它作为一个数据点
jinaj2 中的 sameas()
是否严格检查布尔值(真,假?)
它与 equal 测试的工作方式不同,我想知道它除了检查布尔值之外还有什么用例。
“检查对象是否指向相同的内存地址...”
https://jinja.palletsprojects.com/en/2.10.x/templates/#sameas
不,它是例如检查,与使用 ==
相比,在 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 中,我从来没有使用过它,所以把它作为一个数据点