链接"是"运营商

时间:2014-08-03 08:53:16

标签: python comparison operator-keyword comparison-operators

python是否支持链接is运算符,例如以下内容?

a = None
b = None
a is b is None

这会输出True,一些文档引用会很好。

4 个答案:

答案 0 :(得分:13)

是。任何归类为比较的运算符都可以链接。来自language reference

  

正式,如果 a b c ,..., y z 是表达式, op1 op2 ,..., opN   是比较运算符,然后a op1 b op2 c ... y opN z是等价的   到a op1 b and b op2 c and ... y opN z,除了每个表达式都是   最多评估一次。

比较运算符为<>==>=<=<>!=的一个很少使用的同义词{1}},已进入Python 3),!=isis notinnot in

答案 1 :(得分:3)

是。见comparison docs.

  

比较可以任意链接,例如,x <1。 y&lt; = z是等价的   到x&lt; y和y&lt; = z,除了y仅被评估一次(但在两者中)   当x      

形式上,如果a,b,c,...,y,z是表达式,op1,op2,...,opN   是比较运算符,然后是op1 b op2 c ... y opN z是等价的   到op1 b和b op2 c和... y opN z,除了每个表达式都是   最多评估一次。

比较运算符的作用:

  

运算符是和不是对象标识的测试:x是y是真的   当且仅当x和y是同一个对象时。 x不是y得到的   反向真值。

答案 2 :(得分:2)

Referencing the Python grammar documentation,由Python读取以解析源文件(因此这是源代码):

comparison: expr (comp_op expr)*
comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'

expr (comp_op expr)* 应以简单的英文阅读“由比较运算符分隔的任意数量的表达式”,其中is为1。这意味着是的,您可以将任意数量的is比较链接在一起。

答案 3 :(得分:1)

是的,is是一个比较运算符,链接的正式描述在参考手册中。

https://docs.python.org/2/reference/expressions.html#not-in