issubclass() and isinstance() issubclass()用于判断类对象与类对象之间的关系 isinstance()用于判断实例对象与类对象之间的关系 issubclass((a,(b,c,d)))判断后者是否存在a的父类
isinstance()接受两个实参 第一个实参是实例对象 第二个实参是类对象或由类对象组成的元组 isinstance(D(),D) True isinstance(D(),A) True isinstance(D(),(B,C,D)) True isinstance(D(),(A,B,C)) True 判断前者是不是后者的实例对象
tpye() 用于获得指定对象的类型
实例对象的类型就是他对应的类对象
运算符==判断某个对象的类型是否是指定类型 只有基本数据类型可以 import types print(type(do_sth)) == types.FunctionType) print(type(print)) == types.BulitinFunctionType) 内置函数
对于制定的类对象或实例对象可以调用内置函数dir()获得其所有可以访问的属性和方法 包括从父类中继承的 列表 类对象和实例对象的结果是有区别的 类对象的结果不包括实例对象
issubclass() class A(object): pass class B(object): pass class C(object): pass class D(A): pass print(issubclass(D, A)) print(issubclass(D, B)) print(issubclass(D, (B, A, C))) print(issubclass(D, (B, C))) , print(issubclass(bool, int)) print(issubclass(bool, str)) True False True False True False print(isinstance(D(), D)) print(isinstance(D(), A)) True Truetype()查看对象的类型 dir()查看所有的方法和属性 type():
class MyClass(object): pass mc = MyClass() print(type(mc)) 输出 <class '__main__.MyClass'>实例对象的类型就是它对应的类对象
print(type(MyClass)) <class 'type'>由上可得:type是Python的一个总类,所有的类都属于在type中。 因此一个类对象的type是type
print(type(int)) print(type(str)) 输出 <class 'type'> <class 'type'> def do_sth(): pass print(type(do_sth)) 输出 <class 'function'>自定义函数的类型是function
print(type(dir)) #输出 <class 'builtin_function_or_method'>内置函数的类型是builtin_function_or_method