Python入门知识点分享——(二十)继承和方法重写

今天是大年三十,祝大家龙年大吉,当然无论何时何地,我们都不要忘记继续学习。今天介绍的是继承和方法重写这两种面向对象编程特点。继承机制指的是,一个类(我们称其为子类或派生类)可以使用另一个类(我们称其为父类或基类)的属性和方法。这种继承的方式可以简化代码的编写,并且提供了代码复用的机制。只需要在子类名称后用括号加上父类名称就可以达到继承效果。

class Fruit:def __init__(self, kind):self.kind = kinddef talk(self):print('我爱吃'+self.kind)apple = Fruit('苹果')
print(apple.talk())class Dinner(Fruit):def __init__(self, kind):Fruit.__init__(self, kind)def share(self):Fruit.talk(self)print(self.kind+"作为晚餐分享给大家")apple = Dinner('苹果')
print(apple.share())

示例中的Fruit就是父类,而Dinner则是子类,Dinner类的初始化方法继承了Fruit类的初始化方法,而share方法也继承了Fruit类的talk方法,语法结构是父类.方法名(形参)。

我爱吃苹果
None
我爱吃苹果
苹果作为晚餐分享给大家
None

需要注意输出语句中的None是因为函数没有明确的返回语句,将print改成return即可解决,提醒大家在编写类时一定要注意返回值。

class Fruit:def __init__(self, kind):self.kind = kinddef talk(self):return '我爱吃'+self.kindapple = Fruit('苹果')
print(apple.talk())class Dinner(Fruit):def __init__(self, kind):Fruit.__init__(self, kind)def share(self):Fruit.talk(self)return self.kind+"作为晚餐分享给大家"apple = Dinner('苹果')
print(apple.share())
我爱吃苹果
苹果作为晚餐分享给大家

在pycharm编译器中继承的父类会有这样的标识,点击即可访问所对应的子类。

方法重写是用在从父类继承的方法不能满足子类需求的情况,为了增强泛用性,我们可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。 重写的实现过程很简单,只需要将同名的方法在子类中重新编辑成自己想要的代码即可。

class Fruit:def __init__(self, kind):self.kind = kinddef talk(self):return '我爱吃'+self.kindclass Dinner(Fruit):def __init__(self, kind):Fruit.__init__(self, kind)def talk(self):return self.kind+"作为晚餐"watermelon = Dinner('西瓜')
print(watermelon.talk())
西瓜作为晚餐

可能有同学会问,那这样我换一个函数名不就行了吗,重写的意义在哪呢。实际上重写还要与super函数配合才能最大化效果,super函数能在子类重写父类方法的情况下重新调用父类,达到依次细分执行的效果。

class Fruit:def __init__(self, kind):self.kind = kinddef talk(self):print('我爱吃'+self.kind)class Dinner(Fruit):def __init__(self, kind):Fruit.__init__(self, kind)def talk(self):super().talk()return self.kind+"作为晚餐"watermelon = Dinner('西瓜')
print(watermelon.talk())
我爱吃西瓜
西瓜作为晚餐

要注意父类的return可能会和子类的return冲突,在这种情况下我们将父类的返回值取消改为直接输出。

重写的标识是向上的红箭头,要和向下灰箭头的继承区分开来。

继承和重写的知识就介绍到这里,我们下期再见。

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

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

相关文章

拟合案例1:matlab积分函数拟合详细步骤及源码

本文介绍一下基于matlab实现积分函数拟合的过程。采用的工具是lsqcurvefit和nlinfit两个函数工具。关于包含积分运算的函数,这里可以分为两大类啊。我们用具体的案例来展示:一种是积分运算中不包含这个自变量,如下图的第一个公式,也就是说它这个积分运算只有R和Q这两个待定…

女程序员失业半年,某央企以为她已婚已孕,准备发offer,结果发现她未婚未孕,立马反悔,取消offer。...

职场中,性别平等一直是热议的话题。特别是女性职员,在招聘和晋升的过程中,往往面临着不小的挑战。 最近,一个帖子在网上引发了广泛关注。一位女性因为失业半年终于拿到了央企的offer,却因为企业误以为她已婚已孕而准备…

二阶系统的迹-行列式平面方法(trace-determinant methods for 2nd order system)

让我们再次考虑二阶线性系统 d Y d t A Y \frac{d\mathbf{Y}}{dt}A\mathbf{Y} dtdY​AY 我们已经知道,分析这种二阶系统。最主要的是注意它的特征值情形。 (此处没有重根的情形,所有是partial) 而特征值,也就是系…

三、搜索与图论

DFS 排列数字 #include<iostream> using namespace std; const int N 10; int a[N], b[N]; int n;void dfs(int u){if(u > n){for(int i 1; i < n; i)cout<<a[i]<<" ";cout<<endl;return;}for(int i 1; i < n; i){if(!b[i]){b[…

视觉开发板—K210自学笔记(二)

视觉开发板—K210 一、开发之前的准备 工欲善其事必先利其器。各位同学先下载下面的手册&#xff1a; 1.Sipeed-Maix-Bit 资料下载&#xff1a;https://dl.sipeed.com/shareURL/MAIX/HDK/Sipeed-Maix-Bit/Maix-Bit_V2.0_with_MEMS_microphone 2.Sipeed-Maix-Bit 规格书下载&…

MYSQL笔记:约束条件

MYSQL笔记&#xff1a;约束条件 主键约束 不能为空&#xff0c;值必须是不同的&#xff08;唯一性&#xff09; 一个表只能修饰一个主键 PRIMARY KEY自增约束 AUTO_INCREMENT唯一键约束 可以为空 unique非空约束 not null 默认值约束 default 外键约束 foreign key …

【2023年终总结】感恩南洋经历,2024收拾再启程

新年祝福 值此2024农历新年到来之际&#xff0c;祝一直支持“IT进阶之旅”的各位小伙伴们新的一年伴随着新的开始&#xff0c;新的旅程&#xff0c;新的突破&#xff0c;新的收获&#xff0c;新的期待..... 写在前面 2023&#xff0c;“IT进阶之旅”一直处于“停更”状态&#…

OCP使用web console创建和构建应用

文章目录 环境登录创建project赋予查看权限部署第一个image检查pod扩展应用 部署一个Python应用连接数据库创建secret加载数据并显示国家公园地图 清理参考 环境 RHEL 9.3Red Hat OpenShift Local 2.32 登录 在 crc start 启动crc时&#xff0c;可以看到&#xff1a; .....…

律师小程序,在线咨询,在线问答小程序修复头像

应用介绍 演示前端小程序&#xff1a; #小程序://问卜易学咨询/cVtT0ndctaecDKd 律师小程序是一种智能化的服务平台&#xff0c;提供了多种有益的功能。首先&#xff0c;它能够实现在线法律咨询&#xff0c;用户可以通过文字、语音或视频与律师实时沟通&#xff0c;获得专业意见…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…

【C++】类的6个默认成员函数

目录 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 运算符重载 5.1运算符重载 5.2赋值运算符重载 5.3前置和后置重载 5.4日期类的实现 6. const成员函数 7. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 对于一个空类&#xff0c;编…

封装sku组件

1. 准备模板渲染规格数据 使用Vite快速创建一个Vue项目&#xff0c;在项目中添加请求插件axios&#xff0c;然后新增一个SKU组件&#xff0c;在根组件中把它渲染出来&#xff0c;下面是规格内容的基础模板 <script setup> import { onMounted, ref } from vue import axi…

【Java面试】数据类型常见面试题

什么是包装类型 将基本类型包装进了对象中得到的类型 基本类型和包装类型有什么区别 用途不同&#xff1a;基本类型一般用于局部变量&#xff0c;包装类型用于其他地方存储方式不同&#xff1a;用于局部变量的基本类型存在虚拟机栈中的局部变量表中&#xff0c;用于成员变量…

[C/C++] -- Boost库、Muduo库编译安装使用

1.Muduo库 Muduo 是一个基于 C11 的高性能网络库&#xff0c;其核心是事件驱动、非阻塞 I/O、线程池等技术&#xff0c;以实现高并发、高性能的网络通信。Muduo 库主要由陈硕先生开发维护&#xff0c;已经成为 C 服务器程序员的常用工具之一。 Muduo 库的主要特点&#xff1a…

每日OJ题_位运算①_位运算解题方法+3道OJ

目录 位运算算法原理 ①力扣191. 位1的个数 解析代码 ②力扣338. 比特位计数 解析代码 ③力扣461. 汉明距离 解析代码 位运算算法原理 常见位运算解题方法&#xff1a; 1. 基础位运算&#xff1a; &&#xff1a;按位与&#xff0c;有0就是0 | &#xff1a;按位或&a…

横扫Spark之 - 22个常见的转换算子

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 1. map()2. flatMap()3. filter()4. mapPartitions()5. mapPartitionsWithIndex()6. groupBy()7. distinct()8. coalesce()9. repartition()10. sortBy()11. intersection()12.union()13.…

蓝桥杯每日一练(python)B组

###来源于dotcpp的蓝桥杯真题 题目 2735: 蓝桥杯2022年第十三届决赛真题-取模&#xff08;Python组&#xff09; 给定 n, m &#xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x n mod y 。 输入格式&#xff1a; 输入包含多组独立的询问。 第一…

二维差分---三维差分算法笔记

文章目录 一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解 二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:模板题 一.二维差分 给定一个原二维数组a[i][j],若要给a[i][j]中以(x1,y1)和(x2,y2)为对角线的子矩阵中每个数都加上一个常数…

绕过系统访问控制

我们研究了最近NSA/CISA 联合网络安全咨询&#xff0c;该咨询涉及这些组织在红/蓝团队演习中发现的首要网络安全问题。在本文中&#xff0c;您将更深入地了解特定问题&#xff0c;包括适用的实际场景&#xff0c;以及可用于限制或克服该问题的缓解策略。这扩展了 NSA/CISA 报告…

C++自幂数判断<GESP C++ 二级>

题目&#xff1a; 代码&#xff1a; #include <iostream> using namespace std; int main() {int m 0;cin >> m;for (int i 0; i < m; i) {int n 0;cin >> n;// 数一下 n 有多少位数&#xff0c;记为 lint t n, l 0;while (t > 0) {t / 10;l;}/…