位置: 编程技术 - 正文

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

  • 小规模企业可以开6%的税票吗
  • 其他项目工会筹备金怎么报税
  • 纳税申报现金流量表报错了可以重新申报吗
  • 计提固定资产折旧,车间使用的固定资产折旧1400
  • 员工报销公司是哪个部门
  • 应计利息会计分录处理
  • 转让旧房增值税计税依据
  • 应交增值税为什么是销项减进项
  • 打官司败诉承担的费用
  • 向一般纳税人销售劳保专用物品
  • 买商铺返租金之套路
  • 会计职业道德的作用
  • 年所得税12万申报
  • 滴滴打车税收问题
  • 国家税务金税四期
  • 反写状态已反写是什么意思
  • 公司替员工承担个税分录不再收回
  • 工会经费具体用途是什么
  • 金银首饰零售消费税税收优惠
  • 未弥补完亏损可以计提盈余公积
  • 哪些税费不适用征管法?
  • 出售固定资产账务如何处理
  • 小规模纳税人月销售额不超过10万免征
  • 分公司应收款转总公司会计分录?
  • 收到美金货款
  • linux 界面卡死
  • 鸿蒙系统怎么同步数据
  • 新版edge浏览器如何打开ie浏览器
  • 劳保用品做账分录
  • 国库集中支付账务处理
  • 所得税到底按会计分录吗
  • 公司专柜样品如何做
  • 微信公众号实名认证怎么更改
  • 长期待摊费用如何结转
  • kb4592440安装失败
  • linux怎么检查网络状态
  • uniapp使用高德地图创建多边形
  • js设置input值
  • 跨市设立分公司
  • element-ui table使用type=‘selection‘复选框全禁用-全选禁用
  • 金融企业类型有哪些
  • 年终奖的发放明目
  • 机器学习中的预测评价指标MSE、RMSE、MAE、MAPE、SMAPE
  • 新必应申请使用资格
  • 华为mate主题
  • 印花税实收资本和资本公积
  • 每天统计数据的表格
  • 银行承兑汇票和贴现的区别
  • 基本户收到款不入账
  • 应付职工薪酬会计凭证
  • 营业外收入如何纳税
  • 用友结算成本处理在哪里
  • 购车是否有进项税额
  • 固定资产净值如何处理
  • 所得税减免的企业税率
  • 出口退税包括
  • 货物已经入库发货怎么办
  • 企业应如何降低消费者
  • 弥补亏损的会计处理
  • 每月可以先报税再缴费吗
  • MySQL主从同步原理介绍
  • mysql8.0 win7
  • Sqlserver中char,nchar,varchar与Nvarchar的区别分析
  • windows2008防火墙允许远程桌面
  • window部署服务
  • win7推送win10
  • windows7自动开机脚本文件
  • centos 3
  • avc用什么打开
  • window sdk for windows 8.1
  • linux系统中在给定文件中查找与设定条件
  • android点击图片跳转页面
  • unity游戏开发入门经典
  • 解决脱发的8个方法
  • nodejs使用es6
  • 基于python的聊天软件
  • android设计模式与最佳实践 电子版
  • 在电子税务局如何增加税种
  • 个体工商户票种核定金额应该填多少
  • 国家税务总局办税指南
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设