否定的真/假和无的平等

时间:2018-04-12 05:19:47

标签: python boolean boolean-logic boolean-expression boolean-operations

当实施棋盘游戏时,棋盘格可以处于三种可能的可用状态之一:True(第一个玩家占用的单元格),False(第二个玩家占用的单元格)或None(单元格为空)。 / p>

我的问题是:

为什么

not(True) == None 
return True 

而它实际应该是return False

为什么

not(False) == None 
return True 

然而它实际应该是return False

这可能是Python中可能的错误,应该尽快报告给开发人员吗?

1 个答案:

答案 0 :(得分:8)

not不是函数,not(True)不是函数调用。

not(True) == None被解析为not (True == None),因为not的优先级低于==

在编写表达式时请记住Python operator precedence,如果函数不起作用,请不要将其视为函数。