Python 中 isinstance()和type()的区别
共性
ininstance()和type()都是用来判断一个对象是否是一个已知的数据类型。
区别
-
isinstance() 是用来和一个已知的数据类型进行对比的,输出的值为 bool类型。输出为Ture 表示带判断的对象的类型和对比的类型一致;False则表示两者不一致。
而type() 的输入是一个对象实例,输出值是对象的类型。exp:
-------------type()------------- type(1) >> <type 'int'> type('runoob') >> <type 'str'> type([2]) >> <type 'list'> -------------isinstance()------------- isinstance(1,int) >> True isinstance('runoob',str) >> Ture isinstance([2],str) >> False
-
type() 不会认为子类是一种父类类型,不考虑继承关系。而isinstance() 会认为子类是一种父类类型,考虑继承关系。
exp: 菜鸟教程
class A: pass class B(A): pass isinstance(A(), A) # returns True type(A()) == A # returns True ## B()继承A(),isinstance()考虑继承,认为B()和A()是一种类型 isinstance(B(), A) # returns True ### type()不考虑继承,认为B()和A()不是一种类型 type(B()) == A # returns False