电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python super()函數使用及多重繼承

瀏覽:131日期:2022-07-26 11:32:53

super()函數可以用于繼承父類的方法,語法如下:

super(type[, object-or-type])

雖然super()函數的使用比較簡單,但是需要根據單繼承和多繼承來分析函數的調用關系。

首先,當類之間的繼承關系為單繼承時,函數調用關系也比較簡單,可以參考如下的例子:

#!/usr/bin/env python3class A(object): def __init__(self): print(’class A’)class B(A): def __init__(self): super(B, self).__init__() print(’class B’)b = B()

上述代碼運行結果如下:

class Aclass B

從結果可以看出,子類B在實例化時調用了父類A的__init__()方法。

當進行多重繼承時,需要考慮MRO的問題。所謂MRO,即Method Resolution Order,自Python2.3以來,MRO采用廣度優先(區別于深度優先)的規則定義。為了更好的理解這個問題,讓我們先來看如下的代碼:

#!/usr/bin/env python3class A(object): def __init__(self): self.n = 10 def minus(self, m): print(’minus in class A start’) self.n -= m print(’minus in class A end’)class B(A): def __init__(self): self.n = 7 def minus(self, m): print(’minus in class B start’) super(B, self).minus(m) self.n -= 2 print(’minus in class B end’)class C(A): def __init__(self): self.n = 12 def minus(self, m): print(’minus in class C start’) super(C, self).minus(m) self.n -= 5 print(’minus in class C end’)class D(B,C): def __init__(self): self.n = 15 def minus(self, m): print(’minus in class D start’) super(D, self).minus(m) self.n -= 2 print(’minus in class D end’)print(’The MRO of class D is :’)print(D.__mro__)d = D()d.minus(2)print(d.n)

代碼運行結果:

The MRO of class D is :(<class ’__main__.D’>, <class ’__main__.B’>, <class ’__main__.C’>, <class ’__main__.A’>, <class ’object’>)minus in class D startminus in class B startminus in class C startminus in class A startminus in class A endminus in class C endminus in class B endminus in class D end4

從運行結果可以看出,子類D的MRO為(<class ’__main__.D’>, <class ’__main__.B’>, <class ’__main__.C’>, <class ’__main__.A’>, <class ’object’>),也就是子類D的minus函數在調用父類函數時的調用順序依次為BCA,而后續的調試打印信息也正好驗證了該順序。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 27PR跨境电商导航 | 专注外贸跨境电商| 中药超微粉碎机(中药细胞级微粉碎)-百科 | 实战IT培训机构_IT培训班选大学生IT技术培训中心_中公优就业 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 企业微信scrm管理系统_客户关系管理平台_私域流量运营工具_CRM、ERP、OA软件-腾辉网络 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 除甲醛公司-甲醛检测-广西雅居环境科技有限公司 | 好笔杆子网 - 公文写作学习交流分享平台| 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 硅胶制品-硅橡胶制品-东莞硅胶制品厂家-广东帝博科技有限公司 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 奥运星-汽车性能网评-提供个性化汽车资讯| 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 深圳市八百通智能技术有限公司官方网站 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工| 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 金属清洗剂,防锈油,切削液,磨削液-青岛朗力防锈材料有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 压砖机_电动螺旋压力机_粉末成型压力机_郑州华隆机械tel_0371-60121717 | 便携式谷丙转氨酶检测仪|华图生物科技百科 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | YJLV22铝芯铠装电缆-MYPTJ矿用高压橡套电缆-天津市电缆总厂 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 |