day20_1 内置函数

 isinstance() 判断对象所属类型,包括继承关系

class A:pass
class B(A):pass
b = B()
print(isinstance(b,B)) #o,t    True
print(isinstance(b,A)) #o,t    True

list()函数其实也是一种对象

l = list()
print(l)  #   []

print(type(l))   # <class 'list'>
class mystr(str):pass
ms = mystr('alex')
print(ms)         # alex

还是上面的例子,is 和isinstance的区别

print(type(ms) is str)             #    False     不包含继承关系,只管一层
print(isinstance('alex',str))     #    True        包含所有的继承关系            

is和 == 的区别

== 值相等        值运算
is 内存地址相等  身份运算
is要求更苛刻
不仅要求值相等,还要求内存地址相同

 issubclass() 判断类与类之间的继承关系

 

# issubclass  是子类

class A:pass
class B(A):pass

print(issubclass(B,A))   # B是A的子类  true   
print(issubclass(A,B))    #A 是B的子类,false
原文地址:https://www.cnblogs.com/zhuangdd/p/12504046.html