isinstance和type区别
在python中,我们由两种方式来判断一个类所属的类型:
-
isinstance(x, A)用来判断x是不是由类A实例化得到,或者由A的子类实例化变量得到 -
type(),返回这个类的类型通过
type(x) is A来判断x是不是由A来创建的,与isinstance区别是无默认继承关系
class A:passclass B(A):passb = B()
print(isinstance(b, B)) # True
print(isinstance(b, A)) # Trueprint(type(b)) # <class '__main__.B'>print(type(b) is B) # True
print(type(b) is A) # False
所以建议使用isinstance而不是type来判断类型