定义一个子类和父类
class A: pass class B(A): pass
is
print(type(b) is B) # 结果: True print(type(b) is A) # 结果: False
is 通过"type"可以判断两个类型是否相等, 只会判断绝对相等, 而不去关心父类是谁.
isinstance
print(isinstance(b, B)) #结果: True print(isinstance(b, A)) #结果: True
isinstance 会对这个对象进行"刨祖坟"式的判断, 先判断本类, 在判断父类, 一直判断, 直到object
issubclass
class A: pass class B(A): pass class C(B): pass print(issubclass(C, B)) # 结果: True print(issubclass(C, A)) # 结果: True
判断一个是是否是另外一个类的子类, 也是"刨祖坟"式的判断