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

 

posted @ 2020-03-16 15:14  蜗牛般庄  阅读(121)  评论(0编辑  收藏  举报
Title
页脚 HTML 代码