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

猜你喜欢

转载自www.cnblogs.com/zhoajiahao/p/11068058.html
今日推荐