Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;A不是B;vs";A是(不是B)“;_Python - Fatal编程技术网

Python &引用;A不是B;vs";A是(不是B)“;

Python &引用;A不是B;vs";A是(不是B)“;,python,Python,我有点害怕“is not”操作符,当“is(not X)”被指定时,“is not X”可能会被解释。确实存在一些表达式A和B,以便: A is not B 不同于 A is (not B) ? 附录。 使用此运算符是否被视为良好做法?难道不应该(A是B)被优先考虑吗?它们绝对不同。后一种情况首先在布尔上下文中计算而不是X,然后检查这两个对象是否是同一个对象(要么True要么False) 考虑: False is not [] 由于False和[]是非常明显不同的对象,因此此表达式非常简单

我有点害怕“is not”操作符,当“is(not X)”被指定时,“is not X”可能会被解释。确实存在一些表达式A和B,以便:

A is not B
不同于

A is (not B)
?

附录
使用此运算符是否被视为良好做法?难道不应该(A是B)被优先考虑吗?

它们绝对不同。后一种情况首先在布尔上下文中计算
而不是X
,然后检查这两个对象是否是同一个对象(要么
True
要么
False

考虑:

False is not []
由于
False
[]
是非常明显不同的对象,因此此表达式非常简单。一,

vs

此表达式为
False
,因为
not[]
求值为
True
False
True
是不同的对象

当然,这只是一个例子。如果不显式地使用
False
True
,查找示例会更容易,因为第二个表达式总是
False
,而第一个表达式(几乎)总是
True

3 is not 0   # True
3 is (not 0)   # False

1请注意,这是一个单一运算符
相同,而不是在
中,它们绝对不同。后一种情况首先在布尔上下文中计算
而不是X
,然后检查这两个对象是否是同一个对象(要么
True
要么
False

考虑:

False is not []
由于
False
[]
是非常明显不同的对象,因此此表达式非常简单。一,

vs

此表达式为
False
,因为
not[]
求值为
True
False
True
是不同的对象

当然,这只是一个例子。如果不显式地使用
False
True
,查找示例会更容易,因为第二个表达式总是
False
,而第一个表达式(几乎)总是
True

3 is not 0   # True
3 is (not 0)   # False
1请注意,是一个单一操作员,与
不在
中的操作员处于同一脉络中是:

A = 0
B = 1
试试看,你会非常害怕:

>>> A = 0
>>> B = 1
>>> A is not B
True
>>> A is (not B)
False
是的:

试试看,你会非常害怕:

>>> A = 0
>>> B = 1
>>> A is not B
True
>>> A is (not B)
False

在某些情况下,
not B
的可能重复将是一个错误,如果
B
不能用作隐式布尔值。在某些情况下,
not B
的可能重复将是一个错误,如果
B
不能用作隐式布尔值。我在Python 2.7和Python 3.3中的结果相同。使用
False is not[]
查看差异。@Matthias--谢谢。我想是清晨的脑雾吧。我总是很惊讶,即使回答错误,你也能获得如此多的选票:-)我在Python2.7和Python3.3中得到了相同的结果。使用
False is not[]
查看差异。@Matthias--谢谢。我想是清晨的脑雾吧。即使回答错误,你也能获得如此多的选票,我总是感到惊讶:-)