我过来了,其中"not None"同时等于True和False.
>>> not None
True
>>> not None == True
True
>>> not None == False
True
Run Code Online (Sandbox Code Playgroud)
起初我预计这将是因为运算符的顺序,但是在测试类似的表达式时:
>>> not False
True
>>> not False == False
False
>>> not False == True
True
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么会这样吗?
Fre*_*Foo 21
这是由于运营商的优先权.not none == True意味着not (None == True)手段None != True,这是真的.同样,None != False也是如此.该值None与布尔值不同.
你的最后两个表达意味着False != False,这是错误的False != True,这是真的.