1、isinstance和type的去区别是什么?
2、为什么推荐使用isinstance?
例:
class A:
pass
class B(A):
pass
b = B()
print(isinstance(b,B)) #返回TRUE
print(isinstance(b,A)) #返回TRUE
print(type(b) == B) # ==判断的是ID值是否相等,type指向的是B
print(type(b) is B)# 判断两者是否是一个对象,尽量使用is而不是==
print(type(b) is A)
# 返回False因为ID是不相等的,A/B是两个不同的对象,实际算是另外一个对象,但对于isinstance实现一些逻辑,能根据继承关系自动去找是否在继承列里边
1、isinstance和type的去区别是什么?
答:type具有固定的指向性,对于继承这样的类型对比不准确,如下例子
2、为什么推荐使用isinstance?
答:因为误差更小