位置: 编程技术 - 正文

使用Mixin设计模式进行Python编程的方法讲解(mixed模型)

编辑:rootadmin

推荐整理分享使用Mixin设计模式进行Python编程的方法讲解(mixed模型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mixlogit模型,mixin设计模式,mixin设计模式,mix模型,mixlogit模型,mixin使用场景,mix模型,mixin设计模式,内容如对您有帮助,希望把文章链接给更多的朋友!

Mixin模式是一种在python里经常使用的模式,适当合理的应用能够达到复用代码,合理组织代码结构的目的。

Python的Mixin模式可以通过多继承的方式来实现, 举例来说,我们自定义一个简单的具有嵌套结构的数据容器:

SimpleItemContainer通过python内置类型Dict来存放数据,不过到目前为止想要访问对应的数据还是得直接调用里面的字典,没法像原生的字典一样方便的通过暴露出来的api访问数据。当然也可以从头开始把完整的Dictionary Interface完全实现个遍,不过在每个自定义的类似的容器中都来一套肯定不行,这时候利用python内置的UserDict.DictMixin就是一个不错的方式:

使用Mixin设计模式进行Python编程的方法讲解(mixed模型)

from UserDict import DictMixin

通过实现最小的Dictionary Interface,还有继承DictMixin实现Mixin模式,我们就轻松获得了完整的原生字典的行为:下表语法,get, has_keys, iteritems, itervalues甚至还有iterable protocol implementation等一系列的方法和实现。

很多框架比如Django, Django rest framework里面就普遍用到了Mixin这种模式,定义api或者viewset的时候就能够通过多重继承的方式服用一些功能

当然,Mixin模式也不能滥用,至少他会污染你新定义的类,有时候还会带来MRO的问题;不过把一些基础和单一的功能比如一般希望通过interface/protocol实现的功能放进Mixin模块里面还是不错的选择:

其实整个理解下来无非就是通过组合的方式获得更多的功能,有点像C#, java里面的interface,强调“it can”的意思,但相比起来简单多了,不需要显示的约束,而且mixin模块自带实现。在使用的时候一般把mixin的类放在父类的右边似乎也是为了强调这并不是典型的多继承,是一种特殊的多继承,而是在继承了一个基类的基础上,顺带利用多重继承的功能给这个子类添点料,增加一些其他的功能。保证Mixin的类功能单一具体,混入之后,新的类的MRO树其实也会相对很简单,并不会引起混乱。

Python按行读取文件的简单实现方法 1:readline()file=open("sample.txt")while1:line=file.readline()ifnotline:breakpass#dosomethingfile.close()一行一行得从文件读数据,显然比较慢;不过很省内存;测试读M的sam

深入浅析python中的多进程、多线程、协程 进程与线程的历史我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。操作系统是运行在硬件之上的软

python中的lambda表达式用法详解 本文实例讲述了python中的lambda表达式用法。分享给大家供大家参考,具体如下:这里来为大家介绍一下lambda函数。lambda函数是一种快速定义单行的最小

标签: mixed模型

本文链接地址:https://www.jiuchutong.com/biancheng/387712.html 转载请保留说明!

上一篇:详解Python中的from..import绝对导入语句(python中fd)

下一篇:Python按行读取文件的简单实现方法(python按行读取文本并输出到excel)

  • 进项税转出的金额含税吗
  • 征收率 税率 区别
  • 会计中管理费用和财务费用的区别
  • 收到税费返还是什么现金流量
  • 出资人和法人承担责任
  • 应收账款属于利润嘛
  • 企业所得税退抵税费申请(汇算清缴)怎么撤销
  • 跨月红冲发票如何申报退税
  • 高新技术企业费用认定
  • 自建的固定资产入账价值具体包括哪些
  • 事业基金弥补收支差额是什么意思
  • 增值税专用发票几个点
  • 公司前期没有收入开支怎么记账
  • 一张报关单上最多不能超过
  • 税控发票系统
  • 一般纳税人有按季申报的吗
  • 个人所得税合并扣税
  • 教育咨询发票怎么开具
  • 个人技术服务费增值税税率是多少啊
  • 商贸公司能开促销专票吗
  • 纳税评估要转出什么意思
  • 暂估入库有时间限制吗
  • 中小企业的界定标准是什么
  • 电脑任务栏在右边怎么调回下边
  • 微软推出windows11系
  • 赔偿款支出会计处理
  • 房产契税什么时间缴纳
  • 代理进口的增值税如何入账
  • 进价金额核算法的账务处理特点
  • 高新技术企业取消资格怎么处罚
  • el-cascader数据渲染时不出现文字
  • 金融资产减值的账务处理
  • 企业租赁不动产税率
  • 库存现金盘亏会计分录无法查明原因
  • php和ajax
  • 新会计准则开办费如何做账务处理
  • 无票收入怎么计算1%税率
  • 浅谈php的数据库管理系统
  • Thinkphp 中 distinct 的用法解析
  • 建行e信通怎么提现怎么操作
  • 记一次调试YOLOv5+DeepSort车辆跟踪项目的经过
  • 冲回上月暂估入账的商品会计分录
  • 综合所得个税计算例题
  • 金税盘发票作废失败09D13D
  • 增值税申报表第18栏怎么来的
  • 房地产企业印花税计入什么科目
  • show processlist
  • 小企业会计准则2023电子版
  • 在建工程的土地可以查封吗
  • 固定资产后续计量包括哪些内容
  • 通货膨胀有什么表现
  • 外汇收入需要缴纳增值税吗
  • 给客户买的礼品要交税吗
  • 贴现利息高好还是低好
  • 资本公积和盈余公积的用途
  • 餐饮招待怎么入账
  • 会计去企业还是国企好
  • sql外连接
  • 台式电脑二级网页打不开怎么办
  • UNIX系统中文件的索引表结构
  • win10升级win1
  • dgservice.exe是什么
  • winio在win7下使用
  • Win7系统不小心将TCP/IP协议卸载如何重新安装?
  • linux ll不能用
  • linux的newgrp
  • w8系统鼠标在哪里调
  • java timer
  • perl的哈希
  • 简易最新版本
  • android开发基础知识
  • python实现识别相似图片小结
  • 企业自建旧房产怎么处理
  • 广州买房退税政策2020
  • 赞美税务工作者的诗句
  • 如何在网上查看自己的征信
  • 收到unknown发来的短信
  • 免税开普票还是专票
  • 17%增值税什么时候开始
  • 建筑安装工程承包条例还有效吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设