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

【图形学】后处理下的HDR、颜色分级、颜色映射与颜色空间

目录 一、Color Grading 1.1概念 1.2 内置在Unity/UE4 二、HDR、LDR与VDR 2.1 LDR 2.2 HDR 2.3 VDR 三、Tone Mapping 3.1 概念 3.2 算法发展史 3.3 ACES算法 四、常见的颜色空间标准 参考 一、Color Grading 1.1概念 Color Grading(颜色分级、颜色校正)俗称调色,是游戏后期处理中最常见也是必要的一个环节。它能够改变或矫正最终图像的颜色和亮度,你可以把它想象...

ColorGalaxy 8419

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

MT6826SGT-STD-R绝对值编码器深度解析:精准控制+灵活编程

本文详细介绍MT品牌的高性能绝对值编码器——MT6826SGT-STD-R。:区别于传统增量式编码器,绝对值输出无需掉电归零,开机即获准确位置数据。的核心优势,结合应用场景与选型指南,为工程师提供一站式解决方案参考。MT6826SGT-STD-R是一款专为工业级精密控制设计的。该设备广泛应用于伺服系统、机器人关节校准、自动化产线等领域。:15bit分辨率实现细腻的位置反馈;:通过专用编写器可自定义多项关键参数;:优化电路设计,适应复杂电磁环境。

2501_93066786的博客 676

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

学Simulink--基础微电网场景实例:基于Simulink的微电网黑启动过程建模与仿真

黑启动(Black Start)是指在全系统停电(无电压、无频率)状态下,微电网依靠内部电源自主恢复供电的能力。🌩️典型场景主网长时间故障自然灾害导致区域停电计划检修后重启❗挑战无参考电压/频率 → 逆变器无法锁相负荷逐级投入 → 需避免过流/过压多电源协调 → 防止环流或失步✅黑启动成功标准在30 秒内恢复关键负荷供电电压/频率稳定在范围内无设备损坏或保护跳闸🎯本文目标:手把手教你使用 Simulink + Simscape + Stateflow 搭建。

amy_mhd的博客 201

RK3568平台(内存篇)DDR定频修改

如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。

weixin_49303682的博客 1621

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

新手友好!C#上位机调用YOLO实现设备异常检测(详细步骤,附踩坑指南)

C#上位机调用YOLO实现设备异常检测,核心是把“工控交互”和“AI检测”的优势结合起来,新手不用追求一步到位,先跑通基础流程,再逐步优化性能和功能。我当初也是从踩坑中过来的,只要把核心链路和细节摸透,其实门槛并没有想象中高。如果你们在实操中遇到了具体问题(比如相机取流卡顿、模型推理报错),可以在评论区留言,后续我也可以针对性拆解具体模块的完整代码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 666

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万+

Siemens SIMATIC软件二次开发:使用C#进行SIMATIC软件二次开发

通过使用OPC-UA通信协议和S7通信库,可以有效地在C#应用程序中与Siemens SIMATIC软件进行数据交换。OPC-UA提供了一个标准化的平台,而S7通信库则提供了直接访问PLC数据的能力。掌握这两种通信方式,将极大地增强在工业自动化领域的二次开发能力。在Siemens SIMATIC软件中,自定义功能块开发是实现二次开发的关键步骤之一。通过C#,可以创建高度定制化的功能块,以满足特定的控制需求。下面,我们将通过一个示例来展示如何使用C#开发一个自定义功能块。OPC-UA通信。

kkchenjj的博客 1415

软件可靠性测试与评价

本文系统介绍了软件可靠性工程的核心内容,包括可靠性概念、模型分类、测试方法和评价体系。重点解析了可靠性测试的三大步骤:定义运行剖面、设计测试用例和实施测试收集数据,并以智能安防系统为例说明具体应用。可靠性评价需结合业务场景,通过量化指标(MTBF、失效率等)和模型预测持续优化系统。文章强调可靠性需贯穿软件全生命周期,通过闭环反馈实现持续改进,为关键系统提供质量保障。

moton2017的博客 2050

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万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python之类和类的继承

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

qq_26800889的博客 726

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python 类继承

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

秋殇阁 1万+

python中类的继承

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

2301_77444219的博客 5418

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、付费专栏及课程。

余额充值