# isinstance() 判断对象所属类型,包括继承关系
用法:isinstance(对象名,类名)
class A:pass
class B(A):pass
b = B()
print(isinstance(b,B)) #Ture
print(isinstance(b,A)) #Ture
l = list()
print(type(l)) #<class 'list'>
class Mystr(str):pass
ms = Mystr('alxe')
print(ms) #alxe
print(type(ms) is str) #False,不包含继承关系,只管一层
print(isinstance(ms,str)) #Ture,包含所有的继承关系
# print(type(ms) is str) # 不包含继承关系,只管一层
# print(isinstance('alex',str)) # 包含所有的继承关系
# == 值相等 值运算
# is 内存地址相等 身份运算
# is要求更苛刻
# 不仅要求值相等,还要求内存地址相同
a = 1111
b = 1111
if a == b:
print(True) #值相等,值运算
if a is b:
print(False) #内存地址相等,身份运算
# issubclass() 判断类与类之间的继承关系
用法:issubclass(类名,类名)
class A:pass
class B(A):pass
class C(B):pass
print(issubclass(C,A)) #Ture
print(issubclass(B,A)) #Ture
print(issubclass(A,B)) #False