您在这里看到的是 ,根本没有优先级!
Python支持类似的表达式
1 < a < 3
测试数字是否在1到3之间;(1 < a) and (a < 3)
除a
只评估一次外,等于。
不幸的是,这也意味着
None is None == None
实际上意味着
(None is None) and (None == None)
这当然是对的,而您开始的较长示例
a = b = 3
a is None == b is None
手段
(a is None) and (None == b) and (b is None)
仅True
当a
和b
都为时才可以None
。
有时非常有用,但在您最不期望的时候也会弹出!