连续';是';Python中的运算符
有人能给我解释一下吗连续';是';Python中的运算符,python,python-3.x,Python,Python 3.x,有人能给我解释一下吗 >>> None is None is None True >>> (None is None) is None False “is”运算符不是取2个操作数,从左边比较对象,然后返回布尔值吗?与2
>>> None is None is None
True
>>> (None is None) is None
False
“is”运算符不是取2个操作数,从左边比较对象,然后返回布尔值吗?与
2<3<4
比较
第二个零和第一个零是一样的吗?对第三个和第二个一样吗?对
OTOH,(True)为无
显然为假。括号打断了链子
计算
lo
是一种常见的python习惯用法,这不会让您担心True<4
的中间结果。计算x is y is z
不太常见,但对于您的单身None
而言,这三个对象是相同的。因为它被解释为:
这并不能解释任何事情。为什么会这样?就因为其他一些不相关的操作符有类似的行为?这是怎么被否决的?@Madphestics,可能是因为它是重复的。我可能早就知道了。这是否意味着
无不是5<10
也将是真的
,因为混合比较运算符如果好的话?@madphenticator yepn不完全是重复的,另一个问题意味着一个人知道链式表达式特性,并询问它是否适用于is
@FerdinandBeyer mm,如果你想重新打开它,我把它留给你。通常,当另一个问题真的是询问他们所看到的无法解释的行为时,人们会欺骗名人。不过,我打赌还有其他可能的复制品。谢谢你让我知道。我承认这是重复的,但我真的找不到那些文章或参考资料,所以我不得不问。@juanpa.arrivillaga好的me@vbstb:不用担心,如果不知道“链式表达式”这个术语,查找此功能的引用是相当困难的。
comparison ::= or_expr ( comp_operator or_expr )*
comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!="
| "is" ["not"] | ["not"] "in"
None is None and None is None