type(),isinstance 和 issubclass,callable()

type()判断此未知对象的类型
  1.共同点
  type和isinstance都可以判断变量是否属于某个内建类型

  2.不同点
  (1)type只接收一个参数,不但可以判断变量是否属于某个类型,而且可以得到参数变量未知的所属的类型;
   而isinstance只能判断是否属于某个已知类型,不能直接得到变量未知的所属的类型
  (2)isinstance可以判断子类实例对象是属于父类的;而type会判断子类实例对象和父类类型不一样

  

isinstance 判断此对象是不是该类(或者是该类的父类)实例化的对象
判断的是对象与类(父类)的关系
# isinstance 判断此对象是不是该类(或者是该类的子类)实例化的对象
class A: pass

class B(A): pass

obj = B()
s1 = 'afds'
print(isinstance(obj, B))  # True
print(isinstance(obj, A))  # True
print(isinstance(s1, str))  # True

issubclass 判断的是此类是不是后面类的字类(派生类)
判断的是类与类之间的关系
# issubclass 判断的是此类是不是后面类的派生类
class D: pass

class A(D): pass

class B(A): pass

abj = B()

print(issubclass(B, A))  # True
print(issubclass(B, D))  # True

 

callable () 检查一个对象是否是可调用的

# callable()    检查一个对象是否是可调用的
a = 0


def func():
    pass


print(callable(func))   # True

print(callable(a))  # False

 

posted @ 2019-01-18 21:16  平平无奇小辣鸡  阅读(120)  评论(0编辑  收藏  举报