Mixin类的实现

python类的多重继承由于C3算法的原因导致实现时需要提前规划先后顺序才能正常使用。

这会让人在python中使用多重继承时感到十分的麻烦。

而Mixin类则为我们带来了自由的多重继承和插拔式的舒适体验。

其实MixinClass的本质其实就是一个没有重写 __new____init__ 方法的类。

MixinClass使用BaseClass或者Object的__new____init__ 方法。

继承顺序是

MixinClass -> BaseClass -> ObjectClass

因此MixinClass的集成顺序最好是BaseClass在最后面

例:

class BaseClass(object):
    def __new__(self):
        pass
        
    def __init__(self):
        pass

class MixinClass1(object):
    pass

class MixinClass2(object):
    pass

class Example(MixinClass2, MixinClass1, BaseClass):
    pass
posted @ 2018-11-15 22:43  暮晨  阅读(433)  评论(0编辑  收藏  举报

Aaron Swartz was and will always be a hero