python继承,看这篇就够了
admin
2024-04-29 11:03:54
0

前言

说到面向对象,大家都不陌生。在python中,一切皆对象,我们使用类来表示具有相同属性和方法的对象的集合。而继承则是一种创建新类的方式,这个新类可以使用被继承类的属性。今天就来说说python中的继承。

继承的概念

继承用于类的创建上,新创建的叫子类,而被继承的叫做父类。子类可以使用父类属性,继承是描述类与类之间的关系。

为什么要用继承呢?因为继承可以减少代码的冗余以及提高代码的重用性。我们在工作中,用到继承的地方很多。

继承的种类

python里继承总共有单继承、多继承和多层继承。

单继承

单继承指的是子类只继承一个父类。示例:

class A():def __init__(self):self.a = 'a'def test_a(self):print("aaaa")class B(A):def __init__(self):self.b = 'b'def test_b(self):self.test_a()print("bbbb")obj = B()
obj.test_b()复制代码

例子中,B类只继承A类的方法。在B类中用self.test_a()即可调用A类的test_a()方法。

多继承

多继承指的是子类继承了多个父类。来个示例:

class A():def __init__(self):self.a = 'a'def test_a(self):print("aaaa")class B():def __init__(self):self.b = 'b'def test_b(self):print("bbbb")class C(A, B):def __init__(self):self.c = 'c'def test_c(self):self.test_a()self.test_b()
复制代码

例子中,C类就分别继承了A类和B类的方法。 多层继承就是指子类继承的父类也有继承别的类,这里就不举例了。

子类重写父类方法

在某些场景下,子类继承了父类的属性和方法,但子类有同名的方法,这时候就需要重写子类的方法了。

class A():def __init__(self):self.a = 'a'def test(self):print("aaaa")class B(A):def __init__(self):self.b = 'b'super().__init__()def test(self):print("bbbb")
复制代码

例子中B类继承A类的属性和test()方法,但B也有test方法,那么只需要在B类中重新定义个test()方法即可。

继承的注意事项及常见运用

注意事项

  • 子类如果重写了__init__方法,子类就不会自动继承父类__init__中的属性。如果要继承父类的属性,需要用到super方法,我们在B类的__init__方法中加上:
super(子类,self).__init__(参数0,参数1...)
父类名称.__init__(self,参数0,参数1...)
复制代码

若继承父类的所有属性就直接用super().__init__()

  • 在调用基类方法时,需加上基类的类名前缀,并带上self参数变量。但在类中调用普通函数不需要带上self函数。

常见运用

继承在python中运用非常广,比如各种模块源码就使用到了继承,我们写代码时如配置代码、log日志打印都用到了继承。

相关内容

热门资讯

面条、火腿、香菇酱!上市公司这... 小龙衔禧辞旧岁,骏马踏春送福来。 分红与回购历来是上市公司回报投资者的重要方式,如今,越来越多企业...
原创 出... 美国常年维持巨额贸易逆差,这事已经持续几十年了。 人们总问,为什么只有美国能这样干?答案藏在美元的全...
美元走不出特朗普阴影?基金经理... 美国银行调查显示,美元遭遇十多年来最狠看空,特朗普政策的不可预测性正重创美元。养老基金等“真金白银”...
巴菲特任内最后操作曝光!黄金下... 隔夜美股盘中拉升,最终集体收涨。国际黄金、白银集体下挫。 三大指数2月17日均小幅收涨,道指涨0.0...
马斯克与OpenAI工程师“披... 2月18日消息,据businessinsider报道称,一场看似轻松的“披萨之争”近日在社交媒体上引...
马斯克重注太阳能:AI电力瓶颈... 来源:环球网 近日,马斯克在社交媒体上表示:“太阳能将全面主导未来的电力生产体系。”他转载并评论的文...
春节暖心守护!赫山区家庭医生团... 大众卫生报·新湖南客户端2月14日讯(通讯员 黄健)“感谢你们要过年了来看我,给我检查身体、告诉我吃...
17家、540亿、2个月:AI... 来源:钛媒体 2026年开年,全球AI投资彻底进入资本高度集中的寡头阶段。据行业融资追踪数据,20...
13F报告显示,伯克希尔哈撒韦... 13F报告显示,伯克希尔哈撒韦四季度建仓纽约时报。 增持Chubb、雪佛龙、达美乐披萨、Lamar...
沙特阿美与微软签署谅解备忘录 IT之家 2 月 13 日消息,今日,沙特阿美宣布与微软签署谅解备忘录,助力沙特阿美在沙特阿拉伯推进...
原创 普... 这就好比你隔壁那个天天喊着要自立门户、甚至不惜要把小区物业砸了的硬汉,突然一天早晨被发现在给物业经理...
理疗康复做小红书太烧钱?教你一... 现在的理疗康复行业,获客真的太“卷”了。传统的百度竞价贵得离谱,线下发传单效率又低,好不容易想转战小...
25万人将涌入,印度首次举办超... 为期五天的印度人工智能影响力峰会在新德里揭幕。这是印度首次举办该国规模最大的人工智能峰会,预计来自全...
原创 “... 在过去一年中,尽管外部挑战纷繁复杂,但很多企业家以远见、韧性与魄力,带领公司稳健前行,交出亮眼成绩单...
国际金价本次暴跌的具体原因有哪... 来源:新浪财富汇 2026年1月底,国际金价在创下历史新高后突现40年来最猛烈的单日暴跌,伦敦现货黄...
马斯克官宣Grok 4.2公测... 快科技2月18日消息,今天,特斯拉CEO埃隆・马斯克通过X平台正式官宣,旗下xAI公司开发的大模型G...
AI春节红包激战正酣,狂欢散场... 本报(chinatimes.net.cn)记者卢晓 北京报道 马年新春到来,AI春节红包大战也行至高...
孙道寻走访调研春节期间连续生产... 2月17日,大年初一,区委副书记、区长孙道寻走访调研春节期间连续生产企业和部分农贸市场,向坚守岗位、...
欧冠-小熊世界波+种族歧视罢赛... 2026年2月18日凌晨4点,2025-2026赛季欧冠联赛淘汰赛附加赛首回合展开一场焦点战役,皇马...
马斯克官宣Grok 4.2公开... IT之家 2 月 18 日消息,今日特斯拉、X 平台 CEO 埃隆 · 马斯克通过 X 平台发文官宣...