技术背景
python中的super,名为超类,可以简单的理解为执行父类的__init__函数。由于在python中不论是一对一的继承,还是一子类继承多个父类,都会涉及到执行的先后顺序的问题。那么本文就着重看下super的具体作用。
案例测试
通过设计这样一个案例,我们可以明确super的前后逻辑关系:先定义一个父类initial
,在这个父类中有参数值param
和函数func
,然后用子类new
来继承父类initial
。继承之后,在子类的__init__
函数中super
执行的前后去打印参数值param
和函数func
的返回值,相关代码如下所示:
# 定义父类 class initial(object): def __init__(self): print ('This print is from initial object') # 定义父类参数 self.param = 3 # 定义父类函数 def func(self): return 1 # 定义子类 class new(initial): def __init__(self): print ('This print is from new object') # 打印子类函数值 print (self.func()) # 执行父类初始化函数 super(new, self).__init__() # 打印父类参数值 print(self.param) self.param = 4 # 定义子类函数 def func(self): return 2 if __name__ == '__main