Python x in y in z [重复]

问题描述 投票:0回答:1

代码审阅者向我标记代码是我写的:

assert b'some html' in response.data in response.data

这显然是不正确的,但我错过了这一点,因为它按预期通过了测试。

在 Python 3.12 REPL 中进行更多测试,语法似乎是

x in y in z
===
x in y && y in z
。但是,我找不到任何有关此语法是什么或其他运算符具有类似功能的信息。这似乎是一些特殊的东西,而不是运算符优先级,因为
(x in y) in z
x in (y in z)
都会导致异常。

这种语法有名字吗?

python
1个回答
0
投票

您所指的语法称为“链式比较”或“链式运算符”。这是 Python 的一项功能,允许您在单个表达式中将多个比较运算符链接在一起。

在Python中,表达式x in y in z相当于(x in y)和(y in z)。这意味着先检查 x 是否在 y 中,然后检查 y 是否在 z 中,并且仅当两个条件都为 True 时,整个表达式的计算结果才为 True。

这种语法可以使代码在某些情况下更加简洁和可读,但在使用它时必须谨慎,以确保清晰度并避免混淆,正如您在代码审查中所经历的那样。

如需更多说明,请查看这篇文章:https://wiingy.com/learn/python/chaining-comparison-operators-in-python/

© www.soinside.com 2019 - 2024. All rights reserved.