python中的逻辑悖论?

Dog*_*rld 11 python

我过来了,其中"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,这是真的.

  • @Dog吃猫世界:是的.但是,请记住,`(not None)== True`是真的,而`(not True)== None`是假的,因为`None!= False`.要将可能为"None"的值转换为布尔值,请在其上调用"bool". (7认同)