super方法


 1 # @Time     :2019/6/22 18:43
 2 # -*- encoding:utf-8 -*-
 3 '''
 4 class Base(object):
 5     def f1(self):
 6         print("Base")
 7         super().f1()
 8 class Bar():
 9     def f1(self):
10         print("Bar")
11 
12 class Foo(Base, Bar):
13     def f2(self):
14         print("Foo")
15         super().f1()
16 
17 foo = Foo()
18 foo.f2()
19 '''
20 # super方法,按照当前类的继承顺序,Foo -> Base -> Bar 找下一个,即:
21 # 第一个super方法现在在Foo类中,按照当前类的继承顺序Foo -> Base -> Bar 找下一个
22 #就是到Base类中找f1方法,
23 #同理:第二个super方法是在Base类中,会去Bar类找f1方法
24 
25 #例题:
26 class Base(object):
27     def f1(self):
28         print("Base")
29 
30 
31 class Bar(Base):
32     def f1(self):
33         super().f1() #按照当前类的继承顺序找下一个,执行print("Base")后,继续往下面执行(参考Debug,更容易理解执行顺序)
34         print("Bar")
35 
36 obj = Bar()
37 obj.f1()