Skip to content

类操作

类定义

定义一个新类ClassA

class ClassA:
    """
    定义一个测试类
    """
    __version__ = '0.1'
    __author__ = "zhujian"

    def __init__(self):
        print("__init__")

    def func1(self, x, y):
        # 打印类名
        print(self.__class__.__name__)
        # 打印日志
        print(self.__doc__)
        # 打印版本号
        print(self.__version__)
        # 打印作者
        print(self.__author__)
        print(x, y)

if __name__ == '__main__':
    a = ClassA()
    a.func1(1, 2)

输出如下:

__init__
    定义一个测试类

0.1
zhujian
1 2

__init__

每次创建类实例都会调用函数__init__(就是构造器)

self

类方法的第一个参数代表类实例,通常命名为self,在调用函数时不用输入该参数值

类继承

python支持多重继承机制

定义派生类ClassB

class ClassB(ClassA):
    """
    派生类ClassB
    """
    __version__ = '0.2'
    __author__ = "zj"

    def __init__(self):
        super().__init__()
        print("__init__ ClassB")

    def func1(self, x, y):
        super().func1(x, y)
        # 打印类名
        print(self.__class__.__name__)
        # 打印日志
        print(self.__doc__)
        # 打印版本号
        print(self.__version__)
        # 打印作者
        print(self.__author__)
        print(x, y)

if __name__ == '__main__':
    b = ClassB()
    b.func1(3, 4)

重载

可以重载父类所有的方法和属性

调用父类

调用父类方法和属性用super()开头

检测继承关系

使用函数isinstance()检查实例类型,是类实例还是派生类实例

使用函数issubclass()检查类的继承关系,是父类还是同一个类

if __name__ == '__main__':
    a = ClassA()
    b = ClassB()
    # 检查实例类型
    print(isinstance(a, ClassA))
    print(isinstance(b, ClassA))
    # 检查继承关系
    print(issubclass(b.__class__, ClassA))
    print(issubclass(b.__class__, ClassB))

True
True
True
True

删除类

使用关键字del删除类实例

del a

相关阅读