类操作¶
参考:9. 类
类定义¶
定义一个新类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