面对对象编程4

    xiaoxiao2025-07-15  5

    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 True

    type()和dir()

    type()查看对象的类型 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

    最新回复(0)