首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python面向对象(2)—— 继承(2)

python面向对象(2)—— 继承(2)

作者头像
gzq大数据
发布于 2020-11-11 08:42:18
发布于 2020-11-11 08:42:18
45200
代码可运行
举报
文章被收录于专栏:大数据那些事大数据那些事
运行总次数:0
代码可运行

在上一节中,我们重写了父类的方法,但是如果我们还想用这两个父类的方法,可按如下例子进行重写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Gun1(object):
	def __init__(self):
		self.length = 100
		
	def shoot(self):
		print('bang1')
		
class Gun2(object):
	def __init__(self):
		self.length = 200
		
	def shoot(self):
		print('bang2')
		
class Wuzi(Gun1,Gun2):
	def shoot(self):
		# 注意这里要先初始化自己,这样可以避免调用父类方法后再调用自己的方法时,还是父类的方法输出
		self.__init__()
		print('bang3')
		
	def shoot1(self):
		# 调用父类方法时先初始化父类
		Gun1.__init__(self)
		Gun1.shoot(self)
	
	def shoot2(self):
		# 同上
		Gun2.__init__(self)
		Gun2.shoot(self)

wuzi = Wuzi()

wuzi.shoot()
wuzi.shoot1()
wuzi.shoot2()

此时输出为bang3,bang1,bang2

多层继承

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Gun1(object):
	def __init__(self):
		self.length = 100
		
	def shoot(self):
		print('bang1')
		
class Gun2(object):
	def __init__(self):
		self.length = 200
		
	def shoot(self):
		print('bang2')
		
class Wuzi(Gun1,Gun2):
	def shoot(self):
		# 注意这里要先初始化自己,这样可以避免调用父类方法后再调用自己的方法时,还是父类的方法输出
		self.__init__()
		print('bang3')
		
	def shoot1(self):
		# 调用父类方法时先初始化父类
		Gun1.__init__(self)
		Gun1.shoot(self)
	
	def shoot2(self):
		# 同上
		Gun2.__init__(self)
		Gun2.shoot(self)

class XiaoWuzi(Wuzi):
	pass

wuzi = XiaoWuzi()

wuzi.shoot()
wuzi.shoot1()
wuzi.shoot2()

像XiaoWuzi这种继承了Wuzi(又继承自两个父类)这样的形式称为多层继承,它照样可以用最高父类(Gun1、Gun2)的方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python面向对象(2)—— 继承(1)
如上例所示,Gun称为父类,Wuzi为子类,Wuzi继承Gun,自动继承父类属性及方法,此时Wuzi后面的括号内只写了一个父类,称之为单继承
gzq大数据
2020/11/11
3990
Python基础之面向对象-继承
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lT55tDWt-1597499184900)(02-面向对象-继承.assets/1.png)]
海仔
2020/08/17
4030
一文理清面向对象(封装、继承、多态)+ 实战案例
面向过程其实就是把过程当做设计核心,根据问题的发展顺序,依次解决问题,尽可能的把过程中涉及到的问题完善解决。他有他的优点,当拿到一个问题时,可以方便的按执行的步骤写代码,但是当逻辑关系变得复杂时,有一个地方出现差错就会导致整个程序无从下手。
程序员小猿
2021/01/19
5740
一文理清面向对象(封装、继承、多态)+ 实战案例
Python基础(二十三):面向对象之继承介绍
Python面向对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法,具体如下:
Lansonli
2023/01/23
5860
Python基础(二十三):面向对象之继承介绍
手撕Python之面向对象
下面我将通过一个简单的例子来展示这两种编程范式的区别。假设我们要编写一个程序,用于计算一个矩形的面积。
Undoom
2024/09/23
1320
手撕Python之面向对象
Python 【面向对象】
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。
IT茂茂
2020/03/19
1.7K0
Python从0到100(十七):面向对象编程进阶
封装:将属性和方法放到一起做为一个整体,然后通过实例化对象来处理,这样隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了。
是Dream呀
2024/05/08
1780
面向对象语言的三大特征: 封装 继承 多态(二)——继承
子类去重写父类中的方法, 当子类重写了父类中的方法,子类再调用该方法时 调用的是子类重写之后的
诡途
2020/10/16
4440
面向对象语言的三大特征: 封装 继承 多态(二)——继承
python面向对象从入门到精通
在Python中,类是一种用户定义的数据类型,用于创建对象的蓝图或模板。通过类,我们可以定义对象的属性和方法,并根据需要创建、使用和销毁对象。类的创建使用class关键字,后跟类名,通常使用首字母大写的命名规范。
子午Python
2023/07/27
3440
开源图书《Python完全自学教程》8.5.1单继承
继承(Inheritance)是 OOP(Object-oriented programming,面向对象程序设计)中的一个重要概念,也是类的三大特性之一(另外两个特性分别是多态和封装)。
老齐
2022/07/06
2750
python3--面向对象--综合练习
3  解释生成器(generator)与函数的不同,并实现且使用简单generator
py3study
2018/08/03
4900
python 面向对象之类的继承
AttributeError: 'WoMan' object has no attribute 'go_to_work'
py3study
2018/08/02
2760
python面向对象的继承-组合-02
管理学生与老师小案例(老师类默认有教书的方法,而学生类是不可以有的,所以不能直接让学生类继承老师类)
suwanbin
2019/09/26
6480
python面向对象的继承-组合-02
面向对象封装、继承、多态
身份运算符用于 比较 两个对象的 内存地址 是否一致 —— 是否是对同一个对象的引用
py3study
2020/01/16
7190
面向对象封装、继承、多态
Python25 面向对象
你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢?
py3study
2020/01/09
5890
Python面向对象基础
当把number属性变成私有属性__number之后,无法直接访问得到,只能通过get_number和set_number两个函数访问__number属性。
职场亮哥
2020/10/10
1.2K0
Python面向对象基础
Python教程第6章 | Python面向对象
如果你学过 Java ,就知道 Java 的编程思想就是:万事万物皆对象。Python 也不例外,在解决实际问题的过程中,可以把构成问题事务分解成各个对象。
仲君Johnny
2024/01/24
2740
Python教程第6章 | Python面向对象
Python3 | 练气期,面向对象、类魔术方法,类修饰器!
如果你接触过 Java、Golang 编程语言,那么你一定知道面向对象编程(OOP)的概念。面向对象编程(OOP)是相对于面向过程编程而言的,面向过程编程是一种以过程为中心的开发模式,而面向对象编程则是以对象为中心的开发模式。
全栈工程师修炼指南
2024/07/29
3380
Python3 | 练气期,面向对象、类魔术方法,类修饰器!
Python学习之面向对象「 中 」
阅读文本大概需要 6 分钟 数据封装1 私有属性:在 Python 中如果让内部属性不被外部直接访问,可以在属性前加两个下划线 __ 注意:如果只有一个 _ 意思也是私有属性,虽然外部可以访问,但是不要直接访问 def __init__(self, name, age): # 定义属性 self.name = name self.__age = age # 私有属性 # 通过内部自定义的方法,修改私有属性 def set
Python技术与生活认知的分享
2018/07/03
3720
python 面向对象
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
py3study
2018/08/02
6510
相关推荐
python面向对象(2)—— 继承(1)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验