否定 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,不是函数的就不要当函数对待。
实现棋盘游戏时,棋盘格可以处于三种不同的可能状态之一: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,不是函数的就不要当函数对待。