Python【继承】复写使用父类成员

news2024/9/26 5:22:01

继承:继承就是一个类,继承另外一个类的成员变量(属性)和成员方法

继承的作用:子类通过继承父类的属性和方法,在调用的时候,除了可以使用子类自身的成员方法和属性外,还可以使用父类的属性和方法,因此可以避免书写相同功能的代码,提高了代码整洁性和可维护性。也就是大家讲的看起来很优雅

继承又分为:单继承 和 多继承

语法:

 单继承 : class  (父类名)   pass

多继承: class (父类名1,父类名2,父类名3,......)

区别:没什么太大区别,单继承只继承一个父类身上的属性和方法,多继承继承了多个父类身上的属性和方法,多继承比单继承实现的功能比较丰富,因为继承的父亲多吗?继承就是可以使用父类身上的属性和功能,继承的父类越多功能越发丰富。

 #演示单继承
class Emp:
    def work(self):
        print('Emp work')
    def write(self):
        print("csdn")

class pythonDeveloper(Emp):
    def shitp(self):
        print ('develop python')
pythonDev = pythonDeveloper()
pythonDev.work()   #调用了父类中的方法
pythonDev.shitp()  #调用了自身的方法
pythonDev.write()#调用了父类中的方法

 演示多继承:

# 多重继承
class PrintByA3:
    def ink (self):
        print("Use ink") #在A3纸上打印文件
class PrintByA4:
    def print (self):
        print("print File in A4")#在A4纸上打印文件
class PrintHandler(PrintByA3,PrintByA4):
    def handleFile(self):
        print(self)
handler = PrintHandler
handler.ink(777)  #为什么要给self 传入值呢? 我也不知道不传入值会出错,可能是python 3.10 的新特性吧
handler.print(777)

多继承注意事项: 

如果子类继承的多个父类中出现相同名称的方法名,那子类在调用时会调用那个方法呢?

class PrintByA3:
    def print (self):
        print("print File in A3") #在A3纸上打印文件
class PrintByA4:
    def print (self):
        print("print File in A4")#在A4纸上打印文件
class PrintHandler(PrintByA3,PrintByA4):   #现在打印PrintByA3方法
#class PrintHandler(PrintByA4,PrintByA3): #如果打开本行的注释 打印 PrintByA4方法,输出print File in A4
    pass
handler = PrintHandler
handler.print(777)

 得出的结论:在多继承中,如果出现了子类继承多个父类中出现的方法有相同的情况,注意子类子类继承父类的括号中,父类的先后次序,谁在前,就会使用谁的方法。

 关于继承还有几点扩展:

复写使用父类成员:

子类继承父类的成员属性和成员方法后,如果父类不能满足要求,那么可以进行复写,复写就是在子类中修改来自父类的属性和方法。

 复写的语法:在子类中重新实现同名成员方法或成员属性即可  

class  fuck

     age = 20    # 属性

     sex = '男'

     def  csdn (self):  # 方法

        print(学python来csdn)

class  fuck2(fuck)

    age = 22 # 属性

    sex = '未知'

    def csdn(self) # 方法

       print("学MySQL睡大觉,一教就会")

调用父类同名成员: (文本来源:百度网盘 请输入提取码)实在太懒了

一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员

如果需要使用被复写的父类的成员,需要特殊的调用方式:

方式1

调用父类成员

     使用成员变量:父类名.成员变量

     使用成员方法:父类名.成员方法(self)

方式2

使用 super() 调用父类成员

     使用成员变量:super().成员变量

     使用成员方法:super().成员方法()

复写不是将原来父类的属性和方法彻底修改,你可这样理解,子类根据父类的属性名和方法名重新给自己创建一套新的属性和方法除了,属性名和方法名和父类一致,功能发生了变化,其实你可以通过 父类名.成员变量  调用父类的属性, 父类名.成员方法(self)  调用父类的方法,(访问父类中原来的属性和方法),这是为了解决不是父类的方法不好用,是不够用,子类创造了一套,但是有的时候还必须用到父类原来属性和方法。

总结:哪里没太看懂,可以向我留言,空闲时间内会及时回复

 

    

 

           

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127232.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模型不达标调整

一 、模型不达标调整 模型构建就是——科学的研究问题的数学表达;比如线性回归模型中的模型公式。 在进行建模时,很多同学会遇到模型不达标的问题,这种情况很常见,通常需要进行模型不达标的调整。 模型不好如何处理 模型拟合不…

使用扩散模型训练文本贴图

🍿*★,*:.☆欢迎您/$:*.★* 🍿 整个代码除了数据处理 其他是借鉴而来 那么说说 数据处理 采取的是使用pil 将某种字体中文写入到图片上去 而后生成图,最后进行加噪生成数据集 简单的利用生成器进行 batch 训练了100epoch 可以简单的生成一些带有文字的图 import numpy a…

数据可视化①:dashboard展示大学生就业现状

大学生就业是和我们息息相关的话题,每一位大学生都关注着,我们常常在网络上看到有关大学生就业的话题,比如毕业季的一些讨论。在大一的创新创业课中,我们也了解到自己所学的专业和以后如何就业,往哪方面就业。但我们了…

linux下安装java环境(小D课堂)

VirtualBox下载安装: 官网去下载就好了。 然后安装就可以了。 然后我们去安装我们的centos7. 然后我们可以从这里选择,然后进行下载。 这里我就用它默认的大小,后面还可以去改。 然后这个虚拟机我们就创建完成了。 我们去双击打开它&#xff…

2023年MCM/ICM美国大学生数学建模竞赛报名通知

一、竞赛背景 美国大学生数学建模竞赛(MCM/ICM)由美国数学及其应用联合会主办, 是唯一的国际性数学建模竞赛,自1985年以来,美国大学生数学建模竞赛已经成功举办38届,也是世界范围内最具影响力的数学建模竞…

微信小程序集成three.js--2.创建不同材质的物体

1.实例演示 小程序集成Three.js,创建不同材质的物体2.源码 (1)引入three.js库文件 import * as THREE from ../../libs/three.weapp.js import {OrbitControls } from ../../jsm/controls/OrbitControls const app getApp() 库文件下载及配置看这里ht…

【STM32F4系列】【HAL库】【自制库】模拟IIC主机

介绍 本项目是利用GPIO模拟I2C的主机 网上常见的是模拟I2C主机 本项目是作为一个两个单片机之间低速通信的用法 协议介绍请看,传送门 模拟从机请看这里 主机 功能描述 I2C按字节(Byte)读写I2C读写寄存器I2C连续读写 编程思路解析 主机是时钟信号的发起方,起始和中止信号…

【Python百日进阶-数据分析】Day141 - plotly桑基图:plotly.graph_objects.Sankey()

文章目录一、语法二、参数三、返回值四、实例4.1 基本桑基图4.2 桑基图的hovertemplate和customdata4.3 定义节点位置4.4 带有彩色链接的更复杂的桑基图4.5 Dash中的桑基图4.6 风格桑基图一、语法 用于网络流量数据分析的桑基图。节点在 中指定,nodes源和目标之间的…

Flutter GetX系列教程---BottomSheet

安装 将 GetX 添加到你的 pubspec.yaml 文件中 dependencies:get: ^4.6.5在需要用到的文件中导入,它将被使用。 import package:get/get.dart;BottomSheet介绍 BottomSheet 是底部弹出的一个组件,常用于单选、验证码二次校验弹窗等,GetX的…

Go语言设计与实现 -- singleflight

这个东西很重要,可以经常用在项目当中,所以我们单独拿出来进行讲解。 在使用它之前我们需要导包: go get golang.org/x/sync/singleflightgolang/sync/singleflight.Group 是 Go 语言扩展包中提供了另一种同步原语,它能够在一个服…

【NCC】之二:积分图加速均值计算

文章目录<center> 积分图 integral image1. 原理&#xff1a;2. 示例3. 计算区域均值4. 计算区域方差5. 积分图示例6. 计算积分图的源码7. 用积分图加速NCC参考积分图 integral image1. 原理&#xff1a; Summed Area Table是一种数据结构和算法&#xff0c;用于快速有效…

【math】大规模对称正定稀疏线性方程组的求解与代数多重网格

大规模对称正定稀疏线性方程组的求解与代数多重网格代数多重网格问题定义迭代法的优畧几何多重网格代数多重网格代数多重网格 你好&#xff01;代数多重网格一个很有意思的话题。 问题定义 很多问题都可以抽象为求解下列优化的问题&#xff1a; 对于图像问题&#xff0c;一…

安全、稳定的工业蜂窝路由器具有怎样的特性?

一、前言 传统路由器通过电缆或光纤线路访问Internet&#xff0c;在很多场景或区域下存在着很大的局限性&#xff0c;例如在行驶的火车上&#xff0c;在固定电话稀缺或没有其他接入方式的地区都是十分受限的。随着科技的发展&#xff0c;很多行业应用都需要具有更强大功能的路…

3 高级面向对象编程实例

高级OOP 1 继承 是一种基于已有类创建新类的机制 class 子类名 extends 父类{类体; }public class Extends_v1 {public static void main(String[] args) {Extendsclass01 ex new Extendsclass01();} } class Baseclass01{public int num;public void setNum(int n){num n…

java之线程死锁和ThreadLocal的使用

线程死锁&#xff1a; 线程死锁是指两个或者两个以上的线程在执行过程中&#xff0c;由于竞争资源或者彼此通信而造成的一种阻塞的现象,若无外力的作用,它们都将无法继续执行下去。 此时应用系统就处于了死锁状态&#xff0c;这些永远在互相等待的线程称为死锁线程。 如下图…

文本中按规则分组区段随机抽样

【问题】 This is a bit complex, and I greatly appreciate any help! I am trying to randomly sample rows from a .csv file. Essentially, I want a resulting file of unique locations (Locations are specified by Easting and Northing columns of the data file, be…

ServletContext和过滤器

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

BM30 二叉搜索树与双向链表

题目 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示&#xff1a; 数据范围&#xff1a;输入二叉树的节点数0≤n≤1000&#xff0c;二叉树中每个节点的值0≤val≤1000. 要求&#xff1a;空间复杂度O(1)&#xff08;即在原树上操作&#x…

低代码对比分析,从工程化上看产品的优劣

低代码算是这几年在IT行业内越来越尖锐的讨论了&#xff0c;而且随着这两年大厂的大量裁员&#xff0c;更是亲者痛仇者快的事情&#xff0c;因为很多大厂发现把一些低端的研发岗位干掉了&#xff0c;反而整个体系在工具的辅助运转下&#xff0c;效率更高&#xff0c;执行力更优…

【Python数据分析】Python模拟登录(一) requests.Session应用

最近由于某些原因&#xff0c;需要用到Python模拟登录网站&#xff0c;但是以前对这块并不了解&#xff0c;而且目标网站的登录方法较为复杂&#xff0c; 所以一下卡在这里了&#xff0c;于是我决定从简单的模拟开始&#xff0c;逐渐深入地研究下这块。 注&#xff1a;本文仅为…