zoukankan      html  css  js  c++  java
  • Python的Mixin

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826299.html

    一:Mixin模式

        Mixin编程是一种开发模式,是一种 将多个不同类中的功能单元的进行组合利用的方式。

        Mixin模式是通过python的多继承机制实现的,但是又与单纯的类继承有所区别:

        1)用作Mixin的类,不作为任何类的基类;

        2)用做Mixin的类不关心将会和什么类一起被继承使用,它只会在子类定义时按需继承进来;

        3)用作Mixin的类通常都会实现一种通用的功能,相当于一种工具箱,即插即用;

    二:Mixin模式的优势

        1) 可以在不修改任何已有类的源代码的情况下,对已有类进行功能扩展;

        2)可以保证组件化编程,将可复用的功能封装为一个Mixin类,按需继承使用;

        3)子类可以根据需要,使用已有的Mixin功能类们进行组合,来实现“新的自己”;

        4)突破了类继承的局限性,以往扩展新功能需要开发新的子类,现在只需要在自身的多继承中添加一个Mixin类即可。

    三:Mixin的原理

        首先我们来看一下Python类的一个隐藏属性:__mro__    

    This attribute is a tuple of classes that are considered when looking for base classes during method resolution.

        它的值是一个元组,元组的元素是该类所继承的类。当子类中调用self.method()或super()时,方法调用会从子类自身查起,沿着继承链条(__mro__属性数组从左到右的顺序)逐个类 地检索符合的方法并调用。

        因此,我们通过Mixin模式为某类添加了新的内容后,在子类中可以直接通过self.method()或super().method()即可无误地调用到我们插入进来的功能啦。

  • 相关阅读:
    文件传输-一个大文件传输
    日志模块-logging模块
    加密模块hashlib
    面向对象进阶-反射
    面向对象
    模块和包
    作业-学生管理系统
    Java 链表反转
    Haoop MapReduce 的Partition和reduce端的二次排序
    Hadoop 笔记1 (原理和HDFS分布式搭建)
  • 原文地址:https://www.cnblogs.com/ygj0930/p/10826299.html
Copyright © 2011-2022 走看看