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
来判断类型