Python3---常见函数---super()

0X01;super()函数的作用?

  super() 函数是用于调用父类(超类)的一个方法。super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

0X02;语法

  super(type[,object-or-type])

  type -- 类。

  object-or-type -- 类,一般是 self

  注意:Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :

0X03;举例:

 1 print("版本号3.x")
 2 '''
 3 案例一:
 4 '''
 5 class A:
 6     def add(self,x): #设定一个类方法
 7         y = x + 1
 8         print(y)
 9 #继承A类
10 class B(A):
11     def add(self,x):
12         print(x)
13        # super().add(x)
14 print('案例一')
15 a = A()
16 b = B()
17 a.add(2)
18 b.add(2)
19 super(B,b).add(2)
20 '''
21 案例二:
22 '''
23 print("案例二:")
24 class C:
25     def add(self,x): #设定一个类方法
26         y = x + 1
27         print(y)
28 #继承A类
29 class D(C):
30     def add(self,x):
31        super().add(x)
32 d = D()
33 d.add(2)
 1 C:\Users\aaron\Desktop\Pytoon-cade\venv\Scripts\python.exe C:/Users/aaron/Desktop/Pytoon-cade/urllib-Study.py
 2 版本号3.x
 3 案例一
 4 3
 5 2
 6 3
 7 案例二:
 8 3
 9 
10 Process finished with exit code 0

你可能感兴趣的:(Python3---常见函数---super())