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