isinstance()和issubclass()

内置函数中有个两个函数经常用到

isinstance()                    对象 是否是 类 的一个对象

from collections import Iterable
print(isinstance([],Iterable))          #isinstance 和Iterable 没关系
#True

--

class A:pass
a = A()
print(isinstance(a,A))                      #判断 对象a 是不是 类A 的一个对象
#True
print(isinstance(a,object))                 #对象a 是不是 object的子类的一个对象
#True

issubclass()           是否有继承关系

class A:pass
class B(A):pass
class C(B):pass
print(issubclass(C,B))                      #判断 类C 是不是 类B 的一个子类
#True
print(issubclass(C,A))                         #判断 类C 是不是 继承自 类A 
#True
print(issubclass(C,object))                 #判断 类C 是不是 继承自 类object
#True

 

小结:
  isinstance(对象,类): 判断这个对象是不是这个类或这个类的子类的实例化
  issubclass(子类,类): 判断一个类是否是另一个类的子类

 

posted @ 2017-10-18 18:22  静静别跑  阅读(156)  评论(0编辑  收藏  举报