python是否支持链接is
运算符,例如以下内容?
a = None
b = None
a is b is None
这会输出True
,一些文档引用会很好。
答案 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),!=
,is
,is not
,in
和not in
。
答案 1 :(得分:3)
比较可以任意链接,例如,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
是一个比较运算符,链接的正式描述在参考手册中。