python继承,看这篇就够了
前言
说到面向对象,大家都不陌生。在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继承,看这篇就够了相关推荐
- 自学python数据分析要多久-如果只有1小时学Python,看这篇就够了
大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...
- 学python重点是什么_如果只有1小时学Python,看这篇就够了
大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析.数据可视化的应用与教学. 和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从 ...
- python6小时完全入门_如果只有1小时学Python,看这篇就够了,摸摸头发你还好吗!...
和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂.大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知道哪 ...
- python java混合编程_详解java调用python的几种用法(看这篇就够了)
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...
本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...
- React入门看这篇就够了
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...
- 史上最全!用Pandas读取CSV,看这篇就够了
导读:pandas.read_csv接口用于读取CSV格式的数据文件,由于CSV文件使用非常频繁,功能强大,参数众多,因此在这里专门做详细介绍. 作者:李庆辉 来源:大数据DT(ID:hzdashuj ...
- Spring Cloud入门,看这篇就够了!
点击▲关注 "中生代技术" 给公众号标星置顶 更多精彩 第一时间直达 概述 首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟. 什 ...
- Docker入门实战看这篇就够了(最新详细以及踩过的坑)
Docker入门实战看这篇就够了 前言 初识 是什么 容器与虚拟机 能干什么 去哪玩 安装 先决条件 查看自己的内核 安装所需的软件包(支持devicemapper存储类型) 设置镜像的仓库 设置yu ...
- NDK撩妹三部曲(四)—NDK 开发如何优雅的定位 Native 异常,看这篇就够了
NDK 开发如何优雅的定位 Native 异常,看这篇就够了 从何说起? 摘要 案例实操 aaddr2line objdump ndk-stack 1.假设我们已经通过 adb logcat 拿到了程 ...
最新文章
- 参加web前端培训要学会哪些技能
- 带你学习JQuery:事件冒泡和阻止默认行为
- 算法提高课-搜索-DFS之连通性模型-AcWing 1112. 迷宫:dfs和bfs两种解法
- 各个级别镜像之间的跳转模型
- python PyQt5 setGeometry()函数(设置当前QWidget的显示位置和大小)
- HTML输入学生成绩并排序java_JS实现冒泡排序,插入排序和快速排序并排序输出...
- 转:C# 线程同步技术 Monitor 和Lock
- Linux添加新硬盘-挂载硬盘,设置开机自动挂载 解决/home 空间不足问题
- apipost--接口测试脚本编写if判断语句使用
- set在python中的用法_python中set的用法:详细源码示例
- 30岁学python有前途吗-我30岁了,转行学编程可以吗? 排除法告诉你答案
- 快速失败(fail-fast)和安全失败(fail-safe)的区别
- UG10.0如何导出CAD图
- 盘点软件开发中那些有趣的边际效应
- python选题背景_选题背景及课题研究的目的与意义范例
- win10只能发现部分计算机,Win10的隐藏小秘密,被我发现了
- iRedmail配置手册
- 带exp在线计算机计算器使用,电脑系统自带科学计算器使用方法
- Filecoin系列 - 源码分析 - CPU SHA扩展
- iperf 服务端发送数据_Iperf详细使用说明