笔记-关于mixin的理解
我理解mixin就是用多继承利用mro的顺序来实现类似装饰器的功能。
现有A类封装了一个a方法
class A:
def a(self):
pass
B类想使用A类中封装的方法,就去继承A类
class B(A):
pass
b=B()
b.a()
但是有时a方法并不能完全满足要求,或者只能实现一部分功能,又不能直接去修改A类,这时就可以再写一个C类
class C():
def a(self):
print('do something')
supper().a()
print('do something')
然后让B先继承C再继承A
class B(C,A):
pass
b = B()
b.a() #这时因为mro中C在A前面,所以b调用的是C中的a方法,C中的supper().a()去调用A的a方法