我尝试了这段代码,看看会发生什么,但是我无法得到它背后的逻辑,我期待一个错误...仅仅是为了好奇
x = not None
print x
答案 0 :(得分:4)
当Python评估not
时,它会尝试将值转换为布尔值。在这种情况下,None为“falsy”(https://docs.python.org/2.4/lib/truth.html),因此not None
的计算结果为True
。
因此,x = not None
相当于x = True
- 即您将变量x指定为True。
答案 1 :(得分:1)
因为not
是布尔类型运算符(逻辑NOT),所以它将None转换为布尔值。无布尔值为False。与False相反,或not None
为True,因此打印为True。
>>> print(bool(None))
False
>>> print(not bool(None))
True
答案 2 :(得分:0)
None
评估为False
。与False
相反的是True
。因此,not None
的结果为True
。布尔类型转换自动发生,类似于3 + True
中发生的情况,它提供4
。