isinstance,issubclass

isinstance和type

他们的区别在于:type()不会认为子类是一种父类类型;isinstance()会认为子类是一种父类类型

class Foo(object):
    pass
 
class Bar(Foo):
    pass
 
print(type(Foo()) == Foo)#True
print(type(Bar())==Foo)#False
print(isinstance(Bar(),Foo))#True

issubclass

判断第一个参数是不是第二个的子类

class Parent:
    pass


class Sub(Parent):
    pass


print(issubclass(Sub, Parent))#True
print(issubclass(Parent,object))#True
原文地址:https://www.cnblogs.com/zhoajiahao/p/11068058.html