位置: 编程技术 - 正文

使用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)

  • 产权转移书据印花税政策
  • 个税汇算清缴可以修改收入吗
  • 销售无形资产增值税纳税义务发生时间
  • 补提去年所得税会计分录怎么写
  • 税财通财务软件下载
  • 在建工程贷款利息分录
  • 小规模纳税人销售农产品税率是多少
  • 车船税滞纳
  • 作为一个财务 月末要做什么
  • 营改增之前
  • 佣金和手续费税前扣除比例
  • 成本类与费用类科目哪些区别
  • 新增员工个人所得税申报表?
  • 政府投资计入什么科目
  • 划拨土地使用权出租
  • 企业微信支付密码怎么设置
  • 税负的含义
  • 即征即退的增值税需要缴纳附加税吗
  • 做天猫合理避税吗
  • 大型超市税收分析报告
  • 税控盘开票显示操作未授权
  • 待处理财产损益的二级科目
  • 融资租赁购入固定资产开票吗
  • 政府补助的会计核算
  • 收到运费怎么做账
  • 医院会计制度准则
  • 城建税一定要当月缴纳吗
  • 收到赞助费开什么发票
  • 申请银行汇票手续费记账凭证
  • w10纯净版系统怎么样
  • 赠品没有收到
  • 来料加工业务的会计处理
  • php和ajax用哪个调用数据
  • 落日时光
  • 原材料入账价值包括代垫运费吗
  • 史上最强i3
  • js 数组中的重数
  • ps制作折扇效果图
  • 哪些费用计入管理费用中
  • 工程检测业务
  • php判断ua
  • 怎么确定应付账款的完整性
  • 报税中的利润表怎么填
  • 金税盘维护费抵扣
  • 奖金如何做账会计分录
  • 原始凭证太多怎么做账
  • 国税局领发票是哪些项目需要收取费用
  • 别人公司过账用自己的银行卡会查吗
  • 自用房地产转换为成本模式计量的投资性房地产
  • mssqlserver怎么用
  • 交耕地占用税如何交
  • 应付账款账面价值扣除商业折扣吗
  • 暂估入库怎么处理
  • 盈余公积多计提对报表的影响
  • 固定资产出售账面价值计入什么科目
  • 土地使用税如何计算公式
  • 非同一控制下企业合并发生的审计费
  • 招聘一年以内
  • 借方是收入还是支出损益类
  • 一般纳税人企业所得税政策最新2023
  • 应收账款是哪个会计科目
  • 工会经费会返还吗
  • 怎样计算加班工资?
  • windows2003服务
  • win7系统中怎么卸载安装的软件
  • xp开机提示explorer
  • Ubuntu Linux 7.04QQ、MSN 安装和使用方法
  • linux安装与基本命令
  • vi编辑器是干什么的
  • win10官方升级工具升级
  • js函数详解
  • get请求的url
  • 安卓icon图标
  • unity脚本编写教程
  • 从零基础开始
  • 河北网上税务登记流程
  • 怎样理解句子我还没弄清楚是怎么回事
  • 广州市国家税务局稽查局举报中心
  • 税务注销相关文件
  • 地税局的全称是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设