Python 继承和子类示例:从 Person 到 Student 的演示
继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是被继承的类,也叫做基类。子类是从另一个类继承的类,也叫做派生类。
创建一个父类
任何类都可以成为父类,因此语法与创建任何其他类相同:
示例,创建一个名为 Person 的类,具有 firstname 和 lastname 属性以及一个 printname 方法:
class Person:def __init__(self, fname, lname):self.firstname = fnameself.lastname = lnamedef printname(self):print(self.firstname, self.lastname)
使用 Person 类创建一个对象,然后执行 printname 方法:
x = Person("John", "Doe")
x.printname()
创建一个子类
要创建一个从另一个类继承功能的类,创建子类时将父类作为参数传递:
示例,创建一个名为 Student 的类,它将继承 Person 类的属性和方法:
class Student(Person):pass
注意: 当您不希望向类添加任何其他属性或方法时,请使用 pass 关键字。
现在,Student 类具有与 Person 类相同的属性和方法。
示例,使用 Student 类创建一个对象,然后执行 printname 方法:
x = Student("Mike", "Olsen")
x.printname()
添加 init() 函数
到目前为止,我们已经创建了一个从父类继承属性和方法的子类。我们希望在子类中添加 init() 函数(而不是使用 pass 关键字)。
注意: 每次使用类创建新对象时,都会自动调用 init() 函数。
示例,向 Student 类添加 init() 函数:
class Student(Person):def __init__(self, fname, lname):# 添加属性等
当您添加 init() 函数时,子类将不再继承父类的 init() 函数。
注意: 子类的 init() 函数会覆盖父类的 init() 函数的继承。
要保留父类的 init() 函数的继承,将调用父类的 init() 函数:
示例:
class Student(Person):def __init__(self, fname, lname):Person.__init__(self, fname, lname)
现在,我们已成功添加了 init() 函数,并保留了父类的继承,并准备在 init() 函数中添加功能。
使用 super() 函数
Python 还具有 super() 函数,可以使子类继承其父类的所有方法和属性:
示例:
class Student(Person):def __init__(self, fname, lname):super().__init__(fname, lname)
通过使用 super() 函数,您无需使用父元素的名称,它将自动继承其父元素的方法和属性。
添加属性
示例,向 Student 类添加一个名为 graduationyear 的属性:
class Student(Person):def __init__(self, fname, lname):super().__init__(fname, lname)self.graduationyear = 2019
在下面的示例中,2019 年应该是一个变量,并且在创建学生对象时传递给 Student 类。要实现这一点,请在 init() 函数中添加另一个参数:
示例,添加一个 year 参数,并在创建对象时传递正确的年份:
class Student(Person):def __init__(self, fname, lname, year):super().__init__(fname, lname)self.graduationyear = yearx = Student("Mike", "Olsen", 2019)
添加方法
示例,向 Student 类添加一个名为 welcome 的方法:
class Student(Person):def __init__(self, fname, lname, year):super().__init__(fname, lname)self.graduationyear = yeardef welcome(self):print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注

相关文章:
Python 继承和子类示例:从 Person 到 Student 的演示
继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是被继承的类,也叫做基类。子类是从另一个类继承的类,也叫做派生类。 创建一个父类 任何类都可以成为父类,因此语法与创建任何其他类相同: 示例&…...
DevOps持续集成-Jenkins(3)
文章目录 DevOpsDevOps概述Jenkins实战3:实战1和实战2的加强版(新增SonarQube和Harbor)⭐环境准备⭐项目架构图对比Jenkins实战1和实战2,新增内容有哪些?SonarQube教程采用Docker安装SonarQube (在Jenkins所…...
TypeScript之索引签名
1. 索引签名 在 TypeScript 中,索引签名是一种定义对象类型的方式,它允许我们使用字符串或数字作为索引来访问对象的属性。 索引签名最主要的作用就是允许我们动态地添加或访问对象的属性,通过使用索引签名,我们可以在编译时无法…...
k8s-----24、亲和力Affinity
1、应用场景 pod和节点间的关系: 某些Pod优先选择有ssdtrue标签的节点,如果没有在考虑部署到其它节点;某些Pod需要部署在ssdtrue和typephysical的节点上,但是优先部署在ssdtrue的节点上; pod和pod间的关系: 同一个应用的Pod不…...
860. 柠檬水找零
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,…...
Flink将数据写入MySQL(JDBC)
一、写在前面 在实际的生产环境中,我们经常会把Flink处理的数据写入MySQL、Doris等数据库中,下面以MySQL为例,使用JDBC的方式将Flink的数据实时数据写入MySQL。 二、代码示例 2.1 版本说明 <flink.version>1.14.6</flink.version…...
react-typescript-demo
1.使用 Context 来存储数据...
Alexon:在云原生环境中快速部署应用服务
Alexon是一个旨在快速部署WEB应用服务到分布式系统中的工具,适用于云原生环境。 Alexon由SymeCloud Limited(syme.dev) 发布,使用GNU Guile编写而成,支持函数编程概念。 SymeCloud 公司主要致力于 AI-Infra 方面的研发,从 OpenAI …...
5G技术在职业教育领域的应用:产生巨变的技术
5G技术在职业教育领域的应用:产生巨变的技术 职业教育领域正面临着前所未有的挑战和机遇。随着5G技术的快速发展和普及,其高速度、低延迟、大容量和连接数的特性给职业教育带来了革命性的改变。本文将深入探讨5G技术在职业教育领域的应用场景、技术原理和…...
【触想智能】工控一体机与5G物联网技术结合是未来发展趋势
工控一体机也叫工业电脑一体机,是工业应用非常重要的一种产品。目前,工控一体机在工业领域的应用已经非常普及,在繁忙的生产车间、数字化机床、自助服务终端设备等场景中,我们都有看到它的身影。 工控一体机应用的普及已经潜移默化…...
LuatOS-SOC接口文档(air780E)--lvgl - LVGL图像库
lvgl.draw_mask_radius_param_t() 创建一个lv_draw_mask_radius_param_t 参数 无 返回值 返回值类型 解释 userdata lv_draw_mask_radius_param_t指针 例子 local radius lvgl.draw_mask_radius_param_t()lvgl.draw_mask_radius_param_t_free(radius) 释放一个lv_d…...
LuatOS-SOC接口文档(air780E)--lora2 - lora2驱动模块(支持多挂)
常量 常量 类型 解释 lora2.SLEEP number SLEEP模式 lora2.STANDBY number STANDBY模式 lora2.init(ic, loraconfig,spiconfig) lora初始化 参数 传入值类型 解释 string lora 型号,当前支持: llcc68 sx1268 table lora配置参数,与具体…...
WKWebView iOS17设置UserAgent
WKWebView 设置 user-agent 参考文档 之前设置 user-agent 都是通过设置NSUserDefaults来实现的,不过升级到了iOS17之后这个方式不好用了。 老的设置方式: [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];目前看通过设置 we…...
持续集成部署-k8s-服务发现-Service
持续集成部署-k8s-服务发现-Service:配置讲解及基础命令 1. Service 简介2. 基础命令3. 基于 Service 访问外部服务4. 代理外部域名5. Endpoints 常用类型1. Service 简介 在K8s中,Service 是一种可以暴露一个或多个Pod的稳定的网络终点,从而形成逻辑上的应用服务单元,为服…...
RocksDB基本架构与原理详解
Rocksdb Flink提供基于流的有状态计算,除了提供实时数据流的处理能力,还需要将计算产生的状态存储起来。 为了满足状态存取需求,提供了memory、flie system、rocksdb三种类型的状态存储机制。 memory存取高效单空间有限,且可用…...
ArcGIS笔记12_ArcGIS搜索工具没法用?ArcGIS运行很慢很卡?
本文目录 前言Step 1 ArcGIS搜索工具没法用Step 2 ArcGIS运行很慢很卡 前言 这是笔者最近遇到的两个小问题,新换了台式机,安装上ArcGIS后发现搜索工具没法用,而且感觉还不如原来笔记本运行的流畅,加载图层很慢,编辑要…...
【VictoriaMetrics】单机版配置
为方便查看,释义都已翻译成中文,本文配置基于VictoriaMetrics 1.87.1版本 bigMergeConcurrencyint用于大合并的最大 CPU 核数。设置为 0 时使用默认值cacheExpireDuration30m0s...
【C语言】strcpy()函数
🦄个人主页:修修修也 🎏所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.strcpy()函数简介 1.函数功能 2.函数参数 1>.char * destination 2>.const char * source 3.函数返回值 4.函数头文件 二.strcpy()函数的具体使用 1.使用s…...
C++基础算法⑦——信奥一本通递归算法(放苹果、求最大公约数问题、2的幂次方表示、分数求和、因子分解、判断元素是否存在)
递归算法 1206:放苹果1207:求最大公约数问题1208:2的幂次方表示1209:分数求和1210:因子分解1211:判断元素是否存在 1206:放苹果 这道题还是有些难度的,我们要考虑几种放苹果的情况。…...
uni-app医院智能导诊系统源码
随着科技的迅速发展,人工智能已经逐渐渗透到我们生活的各个领域。在医疗行业中,智能导诊系统成为了一个备受关注的应用。本文将详细介绍智能导诊系统的概念、技术原理以及在医疗领域中的应用,分析其优势和未来发展趋势。 智能导诊系统通过人工…...
告别CAN-TP通信超时!手把手教你用PCAN-Explorer 6和Vector上位机调优N_As/N_Bs/N_Cs参数
告别CAN-TP通信超时!手把手教你用PCAN-Explorer 6和Vector上位机调优N_As/N_Bs/N_Cs参数 在汽车电子诊断和ECU刷写领域,CAN-TP(CAN Transport Protocol)通信的稳定性直接影响到开发效率和系统可靠性。作为一名长期奋战在车载网络测…...
三步轻松搭建你的B站离线视频库:BilibiliDown完全使用指南
三步轻松搭建你的B站离线视频库:BilibiliDown完全使用指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirro…...
Windows媒体播放终极解码方案:LAV Filters完整指南
Windows媒体播放终极解码方案:LAV Filters完整指南 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters 如果你在Windows上观看视频时经常遇到格式不支…...
Vant Weapp组件库无障碍颜色方案实践指南
Vant Weapp组件库无障碍颜色方案实践指南 【免费下载链接】vant-weapp 轻量、可靠的小程序 UI 组件库 项目地址: https://gitcode.com/gh_mirrors/va/vant-weapp 问题引入:被忽视的视觉障碍用户体验痛点 在小程序开发中,颜色设计往往聚焦于视觉美…...
5分钟掌握:终极地图填充插件的完整指南
5分钟掌握:终极地图填充插件的完整指南 【免费下载链接】sketch-map-generator Sketch plugin to fill a shape with a map generated from a given location using Google Maps and Mapbox 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-map-generator …...
ComfyUI-Impact-Pack终极指南:5大AI图像增强功能完全解析
ComfyUI-Impact-Pack终极指南:5大AI图像增强功能完全解析 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: https…...
汽车BCM控制器实战:从零搭建HIL测试环境(附Python自动化脚本)
汽车BCM控制器HIL测试环境搭建实战指南 车身控制模块(BCM)作为现代汽车电子架构中的核心枢纽,其稳定性直接影响着整车的舒适性与安全性。本文将带您从零开始构建一套完整的硬件在环(HIL)测试环境,覆盖从台架…...
XUnity.AutoTranslator实用指南:高效实现Unity游戏实时翻译
XUnity.AutoTranslator实用指南:高效实现Unity游戏实时翻译 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏市场中,语言障碍常常成为玩家体验优质游戏的最大阻碍。XUn…...
Qwen3.5-4B模型网络协议分析与故障模拟实践
Qwen3.5-4B模型网络协议分析与故障模拟实践 1. 网络工程师的新助手 最近遇到一个典型的运维场景:某电商平台大促期间,支付接口频繁出现连接超时。运维团队抓包分析后发现TCP重传率异常,但传统方法定位具体原因耗时长达3小时。这正是Qwen3.5…...
零信任实践:OpenClaw+SecGPT-14B构建个人安全决策引擎
零信任实践:OpenClawSecGPT-14B构建个人安全决策引擎 1. 为什么需要个人安全决策引擎 去年某个深夜,我的服务器突然收到大量异常登录尝试。虽然最终没有造成损失,但这件事让我意识到:传统的静态密码和固定权限规则,在…...
