issubclass()和isinstance()

一、issubclass()和isinstance()

1.1 issubclass()

判断第一个类是不是第二类的子类,返回true或者flase

# 判断第一个类是不是第二类的子类,返回true或者flase


class Foo:
    pass


class A:
    pass


class Bar(Foo,A):
    pass


class Tt(Bar):
    pass

print(A.__bases__)#(<class 'object'>,)
print(Bar.__bases__)  # (<class '__main__.Foo'>,),查看所有的父类,当继承一个类后,将不会显示object,以元组的形式表示:(<class '__main__.Foo'>,)
print(Bar.__base__)#<class '__main__.Foo'> 查看第一个父类
print(issubclass(Tt, object))  # True,object是所有类的祖宗
print(issubclass(Bar, Foo))  # True
print(issubclass(Tt, Foo))  # True
print(issubclass(Tt, A))  # True

1.2 isinstance()

判断第一个参数是不是第二个参数的对象,返回true或者flase

# 判断第一个参数是不是第二个参数的对象,返回true或者flase
#isinstance()
class Foo:
    pass


class Tt():
    pass


f = Foo()
print(isinstance(f, Foo))  # True

print(isinstance(f, Tt))  # False

原文地址:https://www.cnblogs.com/SkyOceanchen/p/11454640.html