否定 True/False 和 None 的相等性

Equality of negated True/False and None

实现棋盘游戏时,棋盘格可以处于三种不同的可能状态之一:True(第一个玩家占据的格子)、False(第二个玩家占据的格子)或None(单元格为空)。

我的问题是:

为什么

not(True) == None 
return True 

而它实际上应该 return False

为什么

not(False) == None 
return True 

而实际上应该 return False?

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

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

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

写表达式时请牢记Python的operator precedence,不是函数的就不要当函数对待。