zoukankan      html  css  js  c++  java
  • python--mixin

      学习了python的都知道,python是支持多继承的,但是支不支持动态继承性质呢?在程序运行过程中,重定义类的继承,python是支持这种动态继承性质的。这也就是python中的mixin,在定义类过程中改变类的继承顺序,继承类。当某个模块不能修改时,通过mixin方式可以动态添加该类的方法,动态改变类的原有继承体系

    Mixin

    Mixin编程是一种开发模式,是一种将多个类中的功能单元的进行组合的利用的方式,这听起来就像是有类的继承机制就可以实现,然而这与传统的类继承有所不同。通常mixin并不作为任何类的基类,也不关心与什么类一起使用,而是在运行时动态的同其他零散的类一起组合使用
    使用mixin机制有如下好处:可以在不修改任何源代码的情况下,对已有类进行扩展;可以保证组件的划分;可以根据需要,使用已有的功能进行组合,来实现“新”类;很好的避免了类继承的局限性,因为新的业务需要可能就需要创建新的子类。
    在举例子之前,我们需要先熟悉几个关键字:

    测试代码

    class B:
        pass
    
    
    class C:
        pass
    
    
    class A(B, C):
        pass
    
    
    print(A.__bases__)  #返回一个元组,该元组元素是类的基类
    print(A.__mro__)  #我的理解是 返回一个元组,该元组元素是该类的继承的类,当查询继承的时候会按从左到右的顺序
    D:pythonpythonvenvScriptspython.exe D:/python/python/test.py
    (<class '__main__.B'>, <class '__main__.C'>)   # __bases__
    (
    <class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>, <class 'object'>) # __mro__
  • 相关阅读:
    ZW网络团队及资源简介
    ZW云推客即将登场
    “4K云字库”基本框架图
    Sketch 55 Beta版本探秘,看看都有什么新功能
    产品经理有哪些类型?
    电影票APP原型设计分享– Movie Booking
    旅游类App的原型制作分享-Klook
    UI行业发展预测 & 系列规划的调整
    原来这就是 UI 设计师的门槛
    摹客PS插件全新改版!—— 智能检测不对应的设计稿
  • 原文地址:https://www.cnblogs.com/wzy23/p/11928179.html
Copyright © 2011-2022 走看看