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

Posted 我是谁9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:UsersaaronDesktopPytoon-cadevenvScriptspython.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()的主要内容,如果未能解决你的问题,请参考以下文章

super

java常见的面试题

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

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

python的类和对象中的super函数的问题

python3 super 不适用于 PyQt 类