python 类的使用(6)之类的继承

Python类的继承 面向对象编程的一个显著优势就是代码复用,继承就是实现代码复用的一种方式。所谓的继承是指创建一个类时,并不是从零开始构建,而是在一个已有类的基础上进行扩展,可以大大降低工作量。例如:编写测试用例继承unittest.TestCase父类 1. 继承与被继承概念   在Python中,新建的类可以继承一个或多个父类,通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。子类可以继承父类的公有属性/方法,但不能继承其私有属性/方法。如果需要在子类中调用父类的方法,可以使用“s 阅读详情

在这里插入图片描述

类的继承是类使用的灵魂,没有继承的类是不完整的,继承也是面对对象类语言的一个显著特点。python中支持多级继承,即类继承是可以一级一级地传递的,在多级继承的过程中依照的顺序是MRO(Method resolution order)顺序来进行继承属性和方法的,不过本文不会涉及到那么复杂的多级继承啦。本文就简单介绍一下类继承的使用方式就好了!

附上类使用专栏的其它文章的链接:


继承是什么?

在电视剧中我们常听到“继承遗产”这样的词语,其实类中的继承也与这里的意思很相似,就是直接去承接别人所拥有的某些东西。类中的继承是用来创建新类的,其从已经存在的类中获得方法及属性用于新类中,在新类中可以再定义额外的方法或属性,从而新类变成了相对之前的类而言更加特殊的类,完成了从一般到特殊的转变。

在类的继承中,被继承的类叫做“父类”、“基类”或“超类”,由继承产生的类被叫做“子类”或“派生类”。在类的继承中,由于父类中已经包含了某些属性及方法,继承所产生的新类若是不作特定修改的话那么父类所拥有的那些属性及方法就会被子类直接继承,而不用在子类中重写,也正是因此类的继承是现实应用中非常有用的功能。

比如我写一个哺乳动物的父类,我可以再写更明确的某些哺乳动物的子类,这样的子类可以是猫猫、狗狗等。写在代码中就是这样:

class Mammals:
    def __init__(self, name):
        self.name = name
        
    def has_hair(self):
        print("{} has hair".format(self.name))
        
class horse(Mammals):    # 要继承某个类直接在括号中加上父类名即可
    pass                 # 由于此处在子类中未写任何内容,因此子类将继承父类所有属性和方法。

a = horse('Bailongma')    # 创建一个子类的类实例 
print(a.name)			  # 子类继承来的属性
a.has_hair()              # 子类继承来的方法

'''
运行结果:
Bailongma
Bailongma has hair
'''

子类对父类属性和方法的继承和发扬!

在了解到继承是什么之后,要知道继承肯定不是完全一模一样的去继承父类,否则创建新类就没有意义了。我认为要创建一个有用的子类需要的可能是增添、删除或者修改某些父类中的类属性以及类方法,这样也就能达到不复写代码的效果。

首先是对类属性的继承,类属性对于类来说一般有两个来源,一个是在类中未被包含在任何函数内的直接写下的赋值语句;另一个就是来源于类构造函数__init__,对于第一种来源的类属性,直接在新类中重新写下一条赋值语句覆盖之前的变量即可,对于第二种的类属性就稍稍麻烦一点了,可以在新类的__init__构造函数中使用以下两种方式继承父类的属性。

# 1.
# 父类名.__init__(self, 属性1、属性2、。。。)
# 2.
# super.__init__(属性1、属性2、。。。)

接下来是对于类方法的继承,父类中的某些类方法可能是我们需要保留的,但某些可能是我们不需要的或者是需要重写的,这种情况下只要在子类中重写这些需要修改的类方法即可。另外创建新类后还可以增加新的类方法。

属性及方法继承的例子:

class Mammals:
    def __init__(self, name, life_span):
        self.name = name
        self.life_span = life_span
        
    def has_hair(self):
        print("{} has hair".format(self.name))

    def print_age(self):
        print("{} can live for {} years".format(self.name, self.life_span))
        
class horse(Mammals):
    def __init__(self, name, life_span, height, speed):
        Mammals.__init__(self, name, life_span)   # 继承属性
        # 这样的语句的效果就是能够从父类中将这些属性继承过来
        # 这里是单继承,使用super.__init__(name, life_span)也可以,
        # 单继承时使用super的效果和普通方式一样,但在多重继承时就需要用到super了,
        # 其能够根据MRO顺序完成对多个父类进行继承。
        self.height = height
        self.speed = speed
        
    def has_hair(self):   # 这里我觉得父类的方法不好,就重写一下
        return True
    
    def describe(self):    # 新写一个函数,增添子类的功能
        print("{} is {} meters tall and runs {} meters per second".\
        format(self.name, self.height, self.speed))
        
A = horse('Bailongma', '100', '2.00', '10')
A.print_age()  # 这里继承父类的函数未在子类中修改,所以还是可以直接调用的
print(A.has_hair())  # 这里子类修改了父类已经存在的函数,所以运行结果根据修改后的函数得到的
A.describe()   # 这里是子类的新功能

'''
运行结果:
Bailongma can live for 100 years
True
Bailongma is 2.00 meters tall and runs 10 meters per second
'''

例子中包含了属性的继承和新属性的创建,还有类方法的重构,类方法的新建,可以多多理解一下呀!

叮!

本文就简单介绍了一下类的继承的基本使用方式,只涉及到了类的单继承,多重继承较为复杂,并未涉及到。希望能帮助到大家!

参考:python类的继承

Python类继承及super()函数 文章目录Python中单类继承普通类方法继承初始化函数继承Python中多类继承 Python中单类继承 Python是一门面向对象的编程语言,支持类继承。新的类称为子类(Subclass),被继承的类称为父类、基类或者超类。子类继承父类后,就拥有父类的所有特性。类继承的简单例子: 普通类方法继承 class Fruit(): def color(self): print(... 阅读详情

相关推荐

Python类的单继承、多继承与super的使用详解

Python类的单继承、多继承与super的使用详解 内容学习自网络: 1.单继承 2.多继承及super使用详解 一、Python类的单继承使用详解 继承性的好处: ①减少了代码的冗余,提供了代码的复用性 ②提高了程序的扩展性 ③(类与类之间产生了联系)为多态的使用提供了前提 二、类继承性的格式:单继承和多继承 #python2中无继承父类,称之为经典类,python3中,默认继承object类...

Rose_IT的博客 1873

知识补充3:Python——类的继承

关于类的一切。

一个Python小白的博客 1246

python之类的封装,继承,多态

目录 一,封装 1,类和对象 ①创建类,语法 ②实例化对象 ③调用类属性和方法语法 2,self 3,属性 ①类属性 ②添加对象属性 ③获取对象属性 ④私有属性和私有方法 a,设置私有属性和方法 b,获取和修改私有属性的值 4,方法 ①类方法 ②静态方法 5,魔法方法 ①__XX__()函数叫做魔法方法,指的是具有特殊功能的函数 ②__init__() ③__str__()--------- 类似Java语言中的toString()方法 二,继承 1,单继承 .

小宝的宝呢的博客 1296

python类与继承创建person类_Python 面向对象的继承

1、Python继承(Inheritance)继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是从其继承的类,也称为基类。子类是从另一个类(也称为派生类)继承的类。2、定义父类任何类都可以是父类,因此语法与创建任何其他类相同:例如:创建一个名为Person的类,该类具有firstname和lastname属性,以及一个printname方法:class Person:def __i...

weixin_39781323的博客 1419

python之类的单继承与多继承

  Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的类的单继承与多继承。  在程序中,继承描述的是事物之间的从属关系。在继承关系中,已有的、设计好的类称为父类或基类,新设计的类称为子类或派生类。继承可以分为单继承和多继承两大类。   在Python中,当一个子类只有一个父类时称为单继承。子类的定义如下所示:   子

jiankang66的博客 2889

高精度有源积分器设计:基于罗氏线圈的电流测量方案解析

在电力系统保护、工业自动化及高精度计量领域,电流的非接触式精确测量是核心需求。传统电流互感器存在磁芯饱和、频带受限等局限,难以应对现代电力电子设备产生的复杂波形。罗氏线圈作为一种空心电流传感器,凭借其宽频带、高线性度及无饱和风险的优势,成为理想解决方案。其工作原理基于法拉第电磁感应定律,输出信号与被测电流的导数成正比,因此必须通过积分运算恢复原始电流波形。积分器的精度、稳定性及动态响应直接决定了整个测量系统的性能上限。一个设计精良的有源积分器能有效解决直流漂移、相位误差及噪声放大等挑战,在继电器保护、断路器

weixin_30036289的博客 314

python类继承实例_Python实现类继承实例

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,本文就举一例Python类继承的实例。实例代码如下:#! /usr/bin/python# Filename: inherit.py# Author: yanggangclass SchoolMember:def __init__(self,name,age):self.name = nameself.age = ageprint...

weixin_33428129的博客 771

模电实验室:手把手教你调试共射放大电路静态工作点(避免波形失真)

本文详细介绍了共射放大电路静态工作点的调试方法,帮助避免波形失真问题。从实验准备、电路搭建到静态工作点测量,提供了实用的电阻选值策略和常见波形失真解决方案,适合电子相关专业学生和硬件工程师参考学习。

weixin_42531128的博客 375

python的继承用法_python类和继承用法实例

本文实例讲述了python类和继承定义与用法。分享给大家供大家参考。具体如下:class Employee:passlee = Employee()lee.name = 'leefang'lee.age = 28class cAA:i = 8def __init__(self):self.__a = 7self.m_a = 1self.m_b = 2def __Method1(self):self...

weixin_33510225的博客 208

华大HC32F460 ADC+DMA高效数据采集实战解析

本文深入解析了华大HC32F460微控制器中ADC与DMA协同工作的高效数据采集方案。通过实战代码演示,详细阐述了如何配置硬件触发、序列扫描及AOS事件联动,实现后台自动采集,从而解放CPU资源,提升系统实时性与可靠性,适用于传感器数据采集、音频处理等多种场景。

weixin_29189373的博客 177

告别“盲开”:手把手教你用MCU内置比较器搞定BLDC无感方波启动(附代码片段)

本文详细介绍了如何利用MCU内置比较器实现BLDC无感方波启动,解决传统无传感器控制中的'盲开'问题。通过虚拟中性点电路设计和三段式启动流程,结合反电动势检测和过零检测技术,提供了一套经济高效的解决方案,并附有可直接移植的代码片段,助力工程师快速实现可靠的无感控制。

weixin_33694172的博客 503

Python基础学习之类与继承(类与继承,这一篇就足够了)

Python基础学习之面向对象(python 类) 文章目录Python基础学习之面向对象(python 类)1. 面向对象 名词解释2. 类的详解2.1 类的举例:2.2 创建方法:2.3 类的帮助文档2.4 类的初始化2.5 方法中的self2.6 类的实例创建2.7 属性的调用 & 修改2.8 类的方法创建 & 调用2.9 类的内置属性2.10 实例的删除 1. 面向对象 名词解释 类(Class): 用来描述具有相同的属性和方法的对象的集合。类中定义了类对象所共有的属性和方法。对象

weixin_47139649的博客 4166

【EPS精品教程】EPS2016三维测图版安装教程(附EPS2016安装包下载地址)

EPS地理信息工作站是北京清华山维新技术开发有限公司历经十五年精心研发和打造,为满足“以地理信息服务为中心”的信息化测绘生产需求而推出的测绘生产活动多种业务模块集成化软件系统。主要功能有:(1)测绘与地理信息多业务模块集成管理;(2)多元多尺度多种类数据集成管理;(3)跨平台异构数据转换;(4)数据监理;(5)自动缩编与综合;(6)坐标转换与动态投影;(7)地理信息模板定制;(8)GIS地理信息描述与CAD图形表达一体化支持;(9)GIS数据库更新维护;(10)图形打印与地图出版。 一、安装过程 EP..

智慧空间实验室 2万+

Python中类的继承

1. 单继承 继承的主要作用是实现代码的重用。继承使得子类拥有父类的方法和属性。 直接来看一个例子吧。 class animal: def eat(self): print("吃") def drink(self): print("喝") class dog(animal): def dark(self): print("汪汪叫") goudan = dog() goudan.eat() goudan.drink() 从上面的代码可以看出,在编写dog类的时候,我们并没有

hello_JeremyWang的博客 3万+

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1473

[SystemC]SystemC中的模块和程序

SystemC 中的层次结构是使用类 sc_module 创建的。sc_module 可以直接使用,也可以使用宏 SC_MODULE “隐藏”。上面的示例 SC_MODULE 创建了一个名为 nand2 的 sc_module 类对象。它的输出纯粹是输入值的函数。因此,模型可以使用最简单的 SystemC 进程,即 SC_METHOD。摘要:本节包含一个完整的简单设计,用于演示 SystemC 中模块和流程的使用。同样,重要的是要注意这不是典型的设计风格 - 但它很好而且易于理解。为什么要看模块和流程?

元直的博客 1867

Python——类的继承

1.继承的实现 Python中继承语法格式如下: class 子类名(父类名): 类的属性 类的方法 例 7-11 类的继承示例,子类继承父类方法: #ex0711.py 类的继承示例,子类继承父类方法 class Animal: num = 0 def __init__(self): print("父类 Animal") def show(self): print("父类 Animal 成员方法") class Cat(Animal):

XQC_KKK的博客 2万+

UMI——斯坦福刷盘机器人:通过手持夹爪革新数据收集方式,且使用视觉SLAM和Diffusion Policy预测动作

没想到今年年初的斯坦福mobilealoha的热度刚过,而到今年2月的下旬,斯坦福另一个团队又推出了UMI刷盘机器人,且这两个团队还互相认识、还在一块共同切磋(顺带小小感叹一下,斯坦福的氛围是真好而且真高产)斯坦福UMI刷盘机器人其与mobile aloha(以及AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild)最大的不同在于其收集数据处理的非真实的机器人,而是一个手持夹持器(从而大幅降低成本)

u013250861的博客 1357

python之类和类的继承

类定义: class ClassName 类对象:类名直接调用 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用 __init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化操作上 self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。 ...

qq_26800889的博客 726

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python 类继承

一个类继承另一个类时,会自动获得另一个类的所有属性和方法,被继承的类称之为父类,新类称为子类。子类拥有父类所有的属性和方法,并且可以定义自己的属性和方法。 首先我们定义一个表示动物的父类: class Animal: def __init__(self, animal_name, animal_type='animal'): self.animal_type = a...

秋殇阁 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python中类的继承

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

2301_77444219的博客 5418

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python3 类的继承

class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类pass查看继承SubClass1.#__base__只查看从左到右继承的第一个子类,__bases__则是查看所有继承的父类(

2401_86437164的博客 1366

Python中类的多继承

文章目录Python中类的多继承多继承Python多继承实现多继承的缺点Mixin*思路1**思路2**思路3**思路4*Mixin类 Python中类的多继承 Python2.2之前类是没有共同的祖先的,之后,引入object类,它是所有类的共同祖先类object。Python2中为了兼容,分为古典类(旧式类)和新式类。Python3中全部都是新式类。新式类都是继承自object的,新式类可以使...

兰枫 1万+

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

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

老猿Python 2423

Python Class 类的继承与多继承

Python Class 类的继承与多继承1、继承概念2、继承中的访问控制3、示例3.1 示例 13.2 示例 23.3 示例 33.4 示例 43.5 示例 53.6 示例 63.7 示例 73.8 示例 83.9 示例 94、多继承4.1 概念介绍4.2 多继承语法4.3 类装饰器4.4 `Mixin` 类4.5 `Mixin` 示例 1、继承概念 面向对象的三要素之一:继承 inheritance 在面向对象的世界中,从父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码、多复用。子类可

weixin_44983653的博客 4192
上一篇: 2020年度总结
下一篇: 二代测序技术之illumina测序技术原理简介
你大佬来啦
博客等级 码龄7年 322粉丝 62原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值