第7.6节 Python中类的继承机制详述

Python 类的继承和多继承 本节构造 3 个类:Father、Mother 和 Child,Child 继承于两个类 Father 和 Mother,它继承了这两个类的属性和方法,同时有自己特有的属性和方法。 阅读详情

        在本章第一节,介绍了面向对象程序设计的三个特征:封装、继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定,因此不存在出于多态考虑来进行继承。但继承可以让子类获得超类(也称为父类、基类,老猿习惯称父类,文中可能会有超类和父类并存的说法,老猿也没有特地去统一,还请大家见谅)的全部功能,超类实现过的方法,子类不需要重新定义就能自动拥有。因此继承还是非常重要的。
一、    语法
要指定超类,可在class语句中的类名后加上超类名,并将其用圆括号括起,具体语法如下:
class 子类名 (超类1,超类2, ...):
       #类定义部分
从上面的语法格式来看,定义子类的语法非常简单,只需在原来的类定义后增加圆括号,并在圆括号中添加多个父类,即可表明该子类继承了这些父类。
实现继承的类被称为子类,被继承的类被称为父类(也被称为基类、超类)。父类和子类的关系,是一般和特殊的关系。
从子类的角度来看,子类扩展(extend)了父类;但从父类的角度来看,父类派生(derive)出子类。也就是说,扩展和派生所描述的是同一个动作,只是观察角度不同而已

二、    类继承方法的使用
1.    子类如果要继承父类的方法(含构造方法、析构方法),可以有2种方法:
1>    继承后不重写父类方法;
2>    重写父类方法,在子类的对应方法里显式地调用父类的方法。
2.    子类如果要重新父类方法(含构造方法、析构方法),但同时还需要父类的方法,可以在子类方法里显示调用父类的方法,同时在方法中再添加其他代码;
3.    子类方法中要显示调用父类方法的三种实现方式
1>    父类名.父类方法,这种方法需要注意,self参数必须传给父类方法;
2>    super().父类方法,这种方法调用不需要也不能传递self参数,由Python自动传入;
3>    super(子类名,self).父类方法,这种方法调用也不需要传递self参数。
以上三种方法,老猿推荐大家使用第二种,一是使用简单,不需要给出父类名或子类名,也不需要self参数传递,二是程序修改简单,如果父类或子类名修改无需修改相关代码。不过这种方法只有Python3以后才支持。

三、    类继承变量的使用
1.    父类定义的实例变量和类变量可以直接继承,可以在子类方法中直接访问,与访问自身定义的实例变量和类变量方式一样;
2.    如果子类和父类的不同实例方法都对某个实例变量进行赋值,但执行的顺序不同,哪个方法先执行就认为该实例是哪个类创建的实例变量,另外一个都可以对其进行访问。极端情况下,如果一个子类的实例变量定义后,在父类的实例方法可以访问该实例变量,无需在父类实例方法中先定义。老猿认为这种能力看起来使用灵活,但不建议使用,首先是因为这不符合父类、子类的设计原则,也不符合封装的原则,其次是容易带来问题,这种方式不符合类的使用者的思维模式,容易出现问题。

四、    说明
1.    在Python3后,如果在定义一个 Python 类时并未显式指定这个类的直接父类,则这个类默认继承 object 类。因此,object 类是所有类的父类,要么是其直接父类,要么是其间接父类;
2.    Python支持多继承,多继承的子类会继承多个超类所有的属性和方法。
1)    大部分面向对象的编程语言(除了 C++)都只支持单继承,而不支持多继承,这是由于多继承不仅增加了编程的复杂度,而且很容易导致一些莫名的错误;
2)    Python 虽然在语法上明确支持多继承,但通常推荐如果不是很有必要,则尽量不要使用多继承,而是使用单继承,这样可以保证编程思路更清晰,而且可以避免很多麻烦;
3)    如果多个超类以不同的方式实现了同一个方法(即有多个同名方法),必须在class语句中小心排列这些超类,因为位于前面的类的方法将覆盖位于后面的类的方法。
3.    一个类的基类可通过其特殊属性__bases__访问;
4.    多个超类的超类有相同方法时,查找特定方法或类变量时访问超类的顺序称为方法解析顺序(MRO),Python使用MRO算法按照类和实例属性的查找顺序去查找类变量。关于MRO算法请大家参考:https://blog.youkuaiyun.com/qq_34979346/article/details/83181353

本节介绍了Python中类中类的继承语法,以及在子类中怎么继承使用父类的变量和方法,有关内容涉及面较广,本节未举例进行说明,下节专门举例介绍。
老猿Python(https://blog.youkuaiyun.com/LaoYuanPython)系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
欢迎大家批评指正,谢谢大家关注!

Python类继承机制 - 实例详解 在Python中,类与类之间可以通过继承建立关系,子类可以继承父类的属性和方法,并且可以在子类中增加新的属性和方法或者重写父类的方法。在子类Dog中,我们使用super()函数调用父类的构造函数,将name属性继承下来,然后定义一个新的属性breed,并将其初始化。通过上述例子,我们可以看到Python中类的继承机制非常灵活,既能继承父类的属性和方法,又能在子类中增加新的属性和方法或者重写父类方法。接着,我们定义一个子类Dog,继承自父类Animal,并在子类中增加一个new_method方法。 阅读详情

相关推荐

Python中类的继承机制详述

类的继承是面向对象编程中的一个重要概念,它允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和方法。Python提供了灵活且强大的类继承机制,使得开发者可以轻松地构建和扩展类的层次结构。通过示例代码的演示,我们展示了如何创建父类和子类,以及如何实例化子类并调用继承的方法。Python中的类继承机制允许子类从父类继承属性和方法,并且可以进行方法重写和多重继承。通过继承,可以构建更加灵活和可扩展的类层次结构,从而提高代码的重用性和可维护性。在上面的示例中,我们创建了一个名为。

PixelLancer的博客 122

python的继承机制

一、python的继承 python支持单继承和多继承,这种继承机制极大的提高了代码的复用性,使得子类可以继承父类和祖类的方法以及属性,这就是继承,同时,子类也可以重写父类和祖类的某个方法或者属性,从而使得子类可以获得与父类和祖类不一样的行为,这就是多态。 python作为一门支持oop的语言,其class(类)实现了封装,继承机制实现了继承与多态。 继承中非常重要的一点就是多态,当子类和父类以及祖类具有相同的属性或者方法的时候,python会调用哪个方法或者属性。 注意:python2与.

lengye7的博客 6389

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 243

Python 中的继承机制是什么样的?

Python的继承机制允许一个类(子类)继承另一个类(父类或基类)的属性和方法。通过继承,可以实现代码复用,同时也能让代码结构更加清晰、易于维护。Python支持单继承和多继承,并且有丰富的特性来处理这些关系。

程序员学习园地。 942

PDF.js实现分片加载问题

PDF.js实现分片加载问题。

qq_32822693的博客 4977

本科双非的计算机考研择校注意点——经验贴

一战一志愿上岸某211的电子信息专硕。之前在某乎也发过帖子。但现在用优快云,所以把相关的心得再发出来仅供大家参考。 首先,我认为最重要的是你为什么要考研? 不管你是为了混一个文凭将来好进大厂,还是为了真正搞学术或者学知识,你要知道你自己的目标,只有坚定自己的目标,才有动力去走完这段复习的历程。真正的考研,是很苦的。如果你是为了逃避大四面临的就业才选择考研,并且还浑浑噩噩不当回事,那我劝你放弃,不如踏踏实实学点技术去找实习。那从我自己出发,我是认为自己本科双非院校且自己四年间没有学到什么专业方面的技能,

m0_56698268的博客 3164

Python中类的继承细讲

博文中详细介绍了Python的类在继承和重用时的用法,以及如何调用基类的 _ _init_ _()方法

程序员小十一的博客 5076

掌握C++新特性中智能指针的综合指南

本文是一篇关于C++中智能指针的综合指南,旨在深入探讨现代内存管理的核心概念和技术。智能指针是C++中一种强大的工具,可以帮助开发人员更安全、高效地管理内存资源。通过详细解析各种类型的智能指针,包括unique_ptr、shared_ptr和weak_ptr,读者将了解它们的原理、用法和适用场景。本文将重点介绍智能指针的优势,如自动内存释放、避免内存泄漏和循环引用等问题。此外,还将讨论智能指针与传统指针的区别,并提供一些最佳实践和实用技巧,帮助读者在实际项目中正确、高效地使用智能指针。

Lion_Long的博客 1200

python类的继承机制_第7.6节 Python中类的继承机制详述

在本章第一节,介绍了面向对象程序设计的三个特征:封装、继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定,因此不存在出于多态考虑来进行继承。但继承可以让子类获得超类(也称为父类、基类,老猿习惯称父类,文中可能会有超类和父类并存的说法,老猿也没有特地去统一,还请大家见谅)的全部功能,超类实现过的方法,子类不...

weixin_39684967的博客 233

【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)

本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取环境光强度传感器数据(BH1750)

Mculover666的博客(嵌入式) 7242

HBase批量导入工具:BulkLoad使用详解

HBase作为分布式NoSQL数据库,在大数据领域有着广泛应用。传统的数据写入方式(如Put操作)在面对海量数据导入时存在性能瓶颈。BulkLoad提供了一种高效的大批量数据导入方案,可以显著提高数据加载速度并降低集群负载。BulkLoad的核心原理和架构与传统写入方式的性能对比详细的使用方法和实现步骤性能优化技巧和最佳实践实际应用案例分析本文首先介绍BulkLoad的基本概念和原理,然后深入讲解其实现机制和关键技术。接着通过实际案例演示BulkLoad的使用方法,并分析性能优化策略。

大数据洞察的博客 1236

python继承是基于类的继承机制_第7.6节 Python中类的继承机制详述

在本章第一节,介绍了面向对象程序设计的三个特征:封装、继承和多态,前面章节重点介绍了封装和多态,由于Python语言是多态语言,对象的类型不再由继承等方式决定,而由实际运行时所表现出的具体行为来决定,因此不存在出于多态考虑来进行继承。但继承可以让子类获得超类(也称为父类、基类,老猿习惯称父类,文中可能会有超类和父类并存的说法,老猿也没有特地去统一,还请大家见谅)的全部功能,超类实现过的方法,子类不...

weixin_42605397的博客 159

LPDDR5 物理层一致性测试(连载・下):电平、过冲下冲与 Rx 接收眼图 Mask 掩模完整指标解读

本文系统梳理LPDDR5物理层一致性测试全流程,涵盖差分/单端电平、边沿斜率、交叉点电压、过冲下冲及CS/CA/DQ接收眼图掩模(Rx Mask)测试,详解各参数定义与工程实操要点。强调配置需与DRAM MR寄存器同步,突出差分≠合格、面积积分不可忽视、掩模失败优先排查参考电压与信号完整性等高频坑点,为硬件调试与SI工程师提供权威参考。

一只豌豆象的博客 40

第7.7节 案例详解:Python类继承机制

本节实现一个类继承的小程序,下面一边结合代码一边介绍相关继承的知识。例子以车、汽车为例,车为父类、汽车为子类。 一、 定义父类Vehicle class Vehicle(): def __init__(self,wheelcount, power):#构造方法,参数有轮子数和动力 self.wheelcount,self.power,self.totaldistanc...

老猿Python 2825

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 462

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python中类的继承

类的继承是面向对象编程中的重要概念,它允许一个类(子类)获取另一个类(父类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以在此基础上添加自己的特定属性和方法,从而实现代码的复用和扩展。在类的继承中,父类通常包含一些通用的属性和方法,而子类可以继承这些通用的特性。子类可以通过继承获得父类的属性和方法,并且可以根据需要进行修改或扩展。这种机制使得代码更具有灵活性和可维护性。通过类的继承,我们可以建立类之间的层次关系,形成类的继承链。

2301_77444219的博客 5418

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python类的继承机制_Python继承机制及其使用

继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Python 的继承是多继承机制,即一个子类可以同时有多个直接父类。Python 子类继承父类的语法是在定义子类时,将多个父类放在子类之后的圆括号里。语法格式如下:class Subclass (SuperClass1, SuperClass2, …)#类定义部分从上面的语法格式来看,定义子类的语法非常简单,只需在原来的类定义后增加圆括号,...

weixin_39665992的博客 374

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Python class类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现各种重用的方法之一是通过继承机制。继承完全可以理解成类之间的父类和子类型关系。 继承概念:继承是类与类的一种关系,是一种子类与父类的关系,即爸爸与儿子,爸爸生个儿子,儿子继承爸爸的属性和方法。 如猫类,猫是动物;猫类继承于动物类,动物类为父类也是所有动物的基类;猫类是动物类的子类,也是动物类的派生类。 Python有单继承与多继承。单继承即子类继承于一个类,多继承即子类继承于多个类,多继承会比较少遇到,本章节主要讲单继承。 什么时候使用继承:假如我需

GMH的博客 6276

Python中类的继承

文章目录Python中类的继承继承继承中的访问控制方法的重写、覆盖override继承时使用的初始化 Python中类的继承 面向对象的三要素之一,继承inheritance 人类和猫类都继承自动物类。个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性。 在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码、多复用。子类可以定 义自己的属性和方法。 继承 c...

兰枫 2287

Python中类的继承方法

Python中类与类之间可以继承,继承的叫父类或超类,新创建的叫子类。通过继承,子类可以使用父类的属性,这样可以有效减少代码的冗余度,提高代码重用性。 谈到类的继承,首先要了解构造函数或构造方法。 构造函数或构造方法 在Python中,一个类,不管是否写了构造函数,它都是具有构造函数的一个类,它可以拥有多个构造函数,但建议一个类只有一个构造函数。 当一个对象被创建后,会立即调用构造函数。例如,我们创建了example类如下: class example_a(object): def ad

小E博客 2598

python的类,对象,继承

python 类和对象 python类/对象 python是一种面向对象的编程语言 python中几乎所以的东西都是对象,拥有属性和方法 类(class):类类似对象构造的函数,或者是用于创建”蓝图“的对象 创建类 创建类使用class关键字 简单创建的一个类示例(使用名为x的属性创建一个名称为Myclass的类):class Myclass: x=5 创建对象 我们可以使用名为myclass的类创建对象 创建一个名称为p1的对象,并打印x的值 p1=my

2301_81808840的博客 1288

Python类的继承机制详解

Python 类的继承机制是面向对象编程的核心特性之一,它允许创建一个新类(子类)来继承另一个现有类(父类)的属性和方法。和多重继承,可以构建出层次清晰、结构合理的类体系。但需注意避免过度继承导致的代码复杂性,优先考虑组合而非继承。继承机制让 Python 代码更具可复用性和可扩展性。合理使用继承、方法重写、继承允许子类复用父类的代码,并可以添加或修改功能。Python 支持一个子类继承多个父类。子类可以重写父类的方法,以改变其行为。用于定义接口,强制子类实现特定方法。)不会被子类直接继承。

m0_37996323的博客 533

Python 类的继承实现

在面向对象编程(OOP)中,继承(Inheritance)是一个至关重要的概念。它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和功能的扩展。继承使得子类可以继承父类的行为,同时还可以根据需要对其进行修改和扩展。Python 支持单继承和多继承,并且其继承机制非常灵活,支持方法重写、父类方法的调用、以及通过`super()`关键字进行父类的访问等功能。本文将详细讲解 Python 中类的继承实现,包括继承的基本概念、如何实现继承、方法重写、`super()` 的使用以及多继承的实现。

956

python继承是基于类的继承机制_Python学习06.13:Python继承机制及其使用

Python 类的封装、继承、多态 3 大特性,前面章节已经详细介绍了 Python 类的封装,本节继续讲解 Python 类的继承机制。继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(变量和函数),但又不想直接将现有类代码复制给新类。也就是说,通过使用继承这种机制,可以轻松实现类的重复使用。举个例子,假设现有一个 Shape 类,该类的 draw()函数可...

weixin_34289439的博客 252
上一篇: 第7.5节 揭开Python类中self的面纱
下一篇: 第7.7节 案例详解:Python类继承机制
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值