isinstance和type的区别
type(obj)是查看对象是否由那个类创建的
class Bar(): pass class Foo(Bar): pass obj=Foo() print(type(obj)) #<class '__main__.Foo'> if type(obj)==Foo: print('obj是Foo创建的') #obj是Foo创建的 if type(obj)!=Bar: print('不是Foo的父类创建的') #不是Foo的父类创建的
isinstance(参数1,参数2)是查看参数1是否是参数2(类或者父类创建)的实例
class Base(object): pass class Foo(Base): pass obj=Foo() print(isinstance(obj,Foo)) #True print(isinstance(obj,Base)) #True
由上面可以看出type更精准,instance范围更广
如果判断对象是否是指定的某一类,就用type
如果判断对象是否每一类或者其父类就用inistance

浙公网安备 33010602011771号