语法
isinstance(object, classinfo)
type(object)
参数说明如下:
object
:要检查类型的对象。classinfo
:要检查的类或由类组成的元组。
例如:我们有一个 Animal
类和一个其派生类 Dog
:
1 | class Animal: # 类 |
区别
1 | # 使用 isinstance() 检查对象是否是指定类(或其派生类)的实例 |
isinstance
可以看到isinstance
返回的都是 True
,因为 dog
是Animal
和Dog
的实例(继承关系)。
type
而type
返回的是<class '__main__.Dog'>
、False
、True
,因为它不会考虑继承关系,只返回对象的确切(当前)类型,所以type
会判断dog
和Animal
是不同的类型。
总结
isinstance(object, classinfo)
函数用于检查一个对象是否是指定类(或该类的派生类)的实例。
它会考虑继承关系,即如果对象是指定类的派生类的实例。type(object)
函数返回对象的类型。
它不会考虑继承关系,只返回对象的确切类型。