在判断比较类型时最好使用instance这个函数,而不是type,因为:

instance会检索对象的类的所有继承的类,如果检索到,返回True,否则返回False

type只比较对象是否为当前的类

  • 举例论证
class A:
    pass

class B(A):
    pass
    
b = B()
print(isinstance(b, B))
print(isinstance(b, A))
print(type(b) == B)
print(type(b) == A)
  • 输出结果
>>>True
>>>True
>>>True
>>>False

可以看到type无法检索出 A类