前言

说到面向对象,大家都不陌生。在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日志打印都用到了继承。

python继承,看这篇就够了相关推荐

  1. 自学python数据分析要多久-如果只有1小时学Python,看这篇就够了

    大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...

  2. 学python重点是什么_如果只有1小时学Python,看这篇就够了

    大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...

  3. python6小时完全入门_如果只有1小时学Python,看这篇就够了,摸摸头发你还好吗!...

    和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知道哪 ...

  4. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  5. python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...

    本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...

  6. React入门看这篇就够了

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...

  7. 史上最全!用Pandas读取CSV,看这篇就够了

    导读:pandas.read_csv接口用于读取CSV格式的数据文件,由于CSV文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍. 作者:李庆辉 来源:大数据DT(ID:hzdashuj ...

  8. Spring Cloud入门,看这篇就够了!

    点击▲关注 "中生代技术"   给公众号标星置顶 更多精彩 第一时间直达 概述 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟. 什 ...

  9. Docker入门实战看这篇就够了(最新详细以及踩过的坑)

    Docker入门实战看这篇就够了 前言 初识 是什么 容器与虚拟机 能干什么 去哪玩 安装 先决条件 查看自己的内核 安装所需的软件包(支持devicemapper存储类型) 设置镜像的仓库 设置yu ...

  10. NDK撩妹三部曲(四)—NDK 开发如何优雅的定位 Native 异常,看这篇就够了

    NDK 开发如何优雅的定位 Native 异常,看这篇就够了 从何说起? 摘要 案例实操 aaddr2line objdump ndk-stack 1.假设我们已经通过 adb logcat 拿到了程 ...

最新文章

  1. 参加web前端培训要学会哪些技能
  2. 带你学习JQuery:事件冒泡和阻止默认行为
  3. 算法提高课-搜索-DFS之连通性模型-AcWing 1112. 迷宫:dfs和bfs两种解法
  4. 各个级别镜像之间的跳转模型
  5. python PyQt5 setGeometry()函数(设置当前QWidget的显示位置和大小)
  6. HTML输入学生成绩并排序java_JS实现冒泡排序,插入排序和快速排序并排序输出...
  7. 转:C# 线程同步技术 Monitor 和Lock
  8. Linux添加新硬盘-挂载硬盘,设置开机自动挂载 解决/home 空间不足问题
  9. apipost--接口测试脚本编写if判断语句使用
  10. set在python中的用法_python中set的用法:详细源码示例
  11. 30岁学python有前途吗-我30岁了,转行学编程可以吗? 排除法告诉你答案
  12. 快速失败(fail-fast)和安全失败(fail-safe)的区别
  13. UG10.0如何导出CAD图
  14. 盘点软件开发中那些有趣的边际效应
  15. python选题背景_选题背景及课题研究的目的与意义范例
  16. win10只能发现部分计算机,Win10的隐藏小秘密,被我发现了
  17. iRedmail配置手册
  18. 带exp在线计算机计算器使用,电脑系统自带科学计算器使用方法
  19. Filecoin系列 - 源码分析 - CPU SHA扩展
  20. iperf 服务端发送数据_Iperf详细使用说明

热门文章

  1. 过电压继电器选型指南
  2. 【网安】初学者,第一天day1 (什么是域名,常见的端口和协议,三次握手四次挥手)
  3. pug和html的区别
  4. 播音配音技巧,新手怎么学好配音
  5. 让你立刻爱上数学的8个算术游戏
  6. 2023年杀手级的 5 款免费FTP客户端,真的好用到爆,推荐给需要的工程师!
  7. 怀恋Dundas系列控件
  8. PostMan的安装和使用教程
  9. HQChart实战教程61-自定义十字星K线颜色
  10. Ubuntu下正确使用cmake编译安装glog