Python 为什么这个lambda函数总是在类型匹配时返回False?

Python 为什么这个lambda函数总是在类型匹配时返回False?,python,python-3.x,nonetype,Python,Python 3.x,Nonetype,鉴于: 您正在检查对象的类型是否为None,而不是实际对象本身类型返回一个类型对象,即该对象的实际类型/类别。在None的特定情况下,它返回NoneType: g = lambda x: type(x) is None 由于对象有一个类型,type(x)为None将永远不会计算为True 为什么不直接测试对象呢?此外,如果要命名一个lambda,还可以定义自己的函数 >>> type(None) NoneType 或者,您可以使用isinstance检查- >>

鉴于:


您正在检查对象的类型是否为
None
,而不是实际对象本身<代码>类型返回一个
类型
对象,即该对象的实际类型/类别。在
None
的特定情况下,它返回
NoneType

g = lambda x: type(x) is None
由于对象有一个类型,
type(x)为None
将永远不会计算为
True

为什么不直接测试对象呢?此外,如果要命名一个
lambda
,还可以定义自己的函数

>>> type(None)
NoneType
或者,您可以使用
isinstance
检查-

>>> def check(x):
...     return x is None
... 
>>> check(None)
True  

作为旁注,pandas库中的函数直接提供此功能。

>>type(None)为None
计算结果为
False
。因为
None
不是同一个对象<代码>类型(无)为
。但是你也可以使用
x is None
。我受到了这篇文章的影响:
>>> def check(x):
...     return x is None
... 
>>> check(None)
True  
>>> isinstance(None, type(None))
True