'not foo is none'和'foo is not none'有什么区别?

时间:2018-07-03 07:30:37

标签: python pep

我想知道下面的2是否有任何区别,如果是,我们应该使用什么。

foo = 9

if not foo is None:
    print('not foo is None')

vs

foo = 9

if foo is not None:
    print('foo is not None')

2 个答案:

答案 0 :(得分:2)

两者绝对没有区别。它们将以相同的方式运行和编译。您也可以检查它们的性能是否完全相同。

答案 1 :(得分:0)

让我们评估条件:

1)  if not foo(if foo is false) is None (is false):

false是false ...因此它将打印字符串。

2) if foo (being true) is not None(true)

true是true .....因此它将打印字符串。

这些条件都是真实的,并且都将打印