天天看点

判断类型函数type(), isinstance(),issubclass()

  • type() # 对象与创建该对象的类之间的关系

这里写代码片

print(type())   # <class 'int'>
print(isinstance(, int))  # True

class A:
    pass
class B:
    pass
a = A()
b = B()

print(type(a) is A)  # True  # 返回的是哪个类创建的此参数
print(type(b) is A)   # False
           
  • isinstance(object, type) # instance 实例,例子的意思 , # 对象与类之间的关系, 判断这个对象是否是这个类,这个类的子类的对象。
print(isinstance(a, object))   # True  # 判断a这个实例化对象是不是object的对象,由于object是所有类的父类,isinstance函数也可以判断出来
print(isinstance(a, A))   # True   # 判断a是否是A类的实例化对象,
print(isinstance(b, A))   # False  # 判断b是否是A类的实例化对象
print(isinstance(a, B))   # False

           
  • issubclass(cls, classinfo) # class 类 # 类与类之间的关系,判断一个类是否是另一个类,另一个类的子类的子类。
class A:
    pass

class B(A):
    pass

class C(B):
    pass

print(issubclass(B, A))  # True  # 判断B是否是A的子类
print(issubclass(C, A))  # True  # 还可以判断C是否是A的子类的子类