【发布时间】:2020-01-14 18:05:39
【问题描述】:
在我的代码中有一个变量foo,它接收来自被调用函数的值。由于传递给此函数的参数,它返回None。
当我执行if 比较变量foo 和None 值时,它返回False。但是,如果我将type(None) 签名到bar 变量并执行相同的if,它将返回True。
为什么?
TL;DR
foo = function()
type(foo)
>> <class 'NoneType'>
if foo == None
>> False
bar = None
if foo == bar
>> False
bar = type(None)
if foo == bar
>> True
为什么?
【问题讨论】:
-
with
def function(): return None我得到了foo = function(); print(foo == None)的 True 和 bar = None 的 True;print(foo == bar) -
发布的代码不是有效的python,所以大概有其他相关代码被编辑掉了。从剩下的样子看,某处有一个
foo=type(foo)或类似的东西。