-
什么是多态
class Animal:
def run(self):
print(‘animal running’)class Lion(Animal): def run(self): print('lion running') class Tiger(Animal): def run(self): print('tiger running') class LeoTiger(Lion, Tiger): pass cub = LeoTiger() isinstance(cub, Lion) isinstance(cub, Tiger)
-
多继承
- 方法和属性的继承顺序: Cls.mro()
- 菱形继承问题
继承关系示意
菱形继承
A.foo()
/
B C.foo()
\ /
D.mro() # 方法的继承顺序,由 C3 算法得到
-
Mixin: 通过单纯的 mixin 类完成功能组合,所有继承的类的功能不会有任何的交叉
-
super
class A:
def init(self):
print(‘enter A’)
self.x = 111
print(‘exit A’)class B(A): def __init__(self): print('enter B') self.y = 222 A.__init__(self) # super().__init__() print('exit B') class C(A): def __init__(self): print('enter C') self.z = 333 A.__init__(self) # super().__init__() print('exit C') class D(B, C): def __init__(self): print('enter D') B.__init__(self) C.__init__(self) # super().__init__() print('exit D') d = D()
python进阶之继承
最新推荐文章于 2024-07-16 19:26:54 发布