继承有几点应该注意的是:
- 继承要在子类加上父类的类名
- 子类和父类都有的方法,优先找子类的方法
- python里面可以继承多个类C#,java 不可以多继承
- 如果继承多个类,继承顺序为从左至右
Python 3 里面的继承可以多继承,通过继承,可以获得父类的功能,继承的时候,如果父类中有重复的方法,优先找自己。
class A: def f(self): print(‘a‘) class B: def f(self): print(‘b‘) def f1(self): print(‘bbbb‘) class C(A,B): def f1(self): print(‘c‘) cc=C() cc.f() # a cc.f1() # c
关于继承顺序需要注意例如 E继承(C,D) -->C继承(A)-->D继承(B) 如下图(python3):
如果有下面关系,D继承B,C继承A,E继承C,D,则查找顺序,E->C->A->D->B,
查找顺序如下:
python 3
第二种查找顺序:E继承(C,D)-->C继承(A),D继承(B)-->A和B都继承(Boos) ,查找顺序如下:
python 3 中的查找顺序:E->C->A->D->B->BOSS
class Boos: def f1(self): print(‘Boos‘) class A(Boos): def f1(self): print(‘A‘) class B(Boos): def f1(self): print(‘B‘) class C(A): def f1(self): print(‘C‘) class D(B): def f1(self): print(‘D‘) class E(C,D): def f1(self): print(‘E‘) aa = E() aa.f1()
Python 2.7版本中
当Boss中未继承object时为经典类查找顺序是:深度优先
E->C->A->BOSS->D->B
当Boss中继承object时为新式类查找顺序是:深度优先
查找顺序:E->C->A->D->B->BOSS
时间: 2024-10-18 02:26:56