Python入门篇【类与对象B】
Python【类与对象】文章目录Python【类与对象】一、封装1.1.概念二、继承2.1.单继承2.2.多继承三、复写3.1.复写父类的成员属性和方法3.2.调用父类的同名成员提示以下是本篇文章正文内容下面案例可供参考一、封装1.1.概念既然现实事物有不公开的属性和行为那么作为现实事物在程序中映射的类也应该支持在变量和方法前加上两个_即变为私有属性或者私有方法。classPhone:# 私有属性__currentNone# 私有方法def__cpu(self):print(cpu运行)★私有属性和私有方法不可以被类对象所使用但是可以被其他的公共的成员方法使用。二、继承通过使用继承来减少代码繁琐以此来得到父类的代码并在其基础上进行修改继承父类的方法和变量。继承分为单继承和多继承。2.1.单继承classPhone:__is_5g_enableFalsedef__check_5g(self):ifself.__is_5g_enable:print(5g开启)else:print(5g关闭使用4g网络)defcall_by_5g(self):self.__check_5g()print(正在通话中)p1Phone()p1.call_by_5g()# 继承Phone父类的属性和方法classPhone2(Phone):__is_6g_enableTrue# 使用Phone方法p2Phone2()p2.call_by_5g()2.2.多继承如果父类中有同名方法或属性先继承的优先级高于后继承语法class子类(父类1,父类2,...)# 占位语句意义在于保证函数的或类定义的完整性表示无内容空的意思pass# 定义第一个父类动物classAnimal:def__init__(self,name):self.namenamedefeat(self):通用的吃的方法print(f{self.name}正在进食)defbreathe(self):通用的呼吸方法print(f{self.name}正在呼吸)# 定义第二个父类会飞的生物classFlyable:deffly(self):飞行方法print(f{self.name}正在空中飞行)defbreathe(self):重写呼吸方法模拟方法冲突print(f{self.name}用翅膀辅助呼吸)# 定义第三个父类会游泳的生物classSwimmable:defswim(self):游泳方法print(f{self.name}正在水中游泳)# 定义子类鸭子继承 Animal、Flyable、Swimmable# 多继承的顺序会影响方法解析顺序MROclassDuck(Animal,Flyable,Swimmable):defquack(self):鸭子特有的叫的方法print(f{self.name}嘎嘎嘎叫)# 测试代码if__name____main__:# 创建鸭子实例duckDuck(小黄鸭)# 调用父类的方法duck.eat()# 继承自 Animalduck.fly()# 继承自 Flyableduck.swim()# 继承自 Swimmableduck.quack()# 子类自身的方法# 重点测试冲突的 breathe 方法Animal 和 Flyable 都有print(\n--- 测试方法冲突 ---)duck.breathe()# 会执行哪个取决于继承顺序# 查看 Duck 类的 MRO方法解析顺序print(\n--- Duck 类的 MRO 顺序 ---)print(Duck.__mro__)三、复写在子类中重新定义同名的属性和方法。3.1.复写父类的成员属性和方法classPhone:IMEINoneproducerZSdefcall_by_5g(self):print(call_by_5g)# 定义子类classPhone2(Phone):producerLS# 复写父类的成员属性# 复写父类的成员方法defcall_by_5g(self):print(self.producer)print(call_by_5g IM LS)phonePhone2()phone.call_by_5g()3.2.调用父类的同名成员调用方法父类名.成员变量父类名.成员属性super.成员变量super.成员方法classA:attrAclassB:attrBclassC(A,B):attrCdefshow_attr(self):print(自身attr:,self.attr)# Cprint(super attr:,super().attr)# A按MRO找第一个父类print(A.attr:,A.attr)# A硬编码print(B.attr:,B.attr)# B硬编码cC()c.show_attr()

相关新闻

从人工到机器人:三维视觉技术如何解决纸箱拆码垛的五大痛点(附真实案例)

从人工到机器人:三维视觉技术如何解决纸箱拆码垛的五大痛点(附真实案例)

从人工到机器人:三维视觉技术如何重塑纸箱拆码垛的作业现场 在制造业与物流业的心脏地带——仓库与产线末端,纸箱的拆垛与码垛是物料流转中最基础、最频繁,却也最耗费人力的环节之一。长久以来,这片区域是人力密集型作业的典型代表…

2026/5/17 10:35:20 阅读更多 →
基于Matlab平台的麦弗逊悬架硬点布置程序:匹配转向拉杆与车轮参数的初版坐标计算系统

基于Matlab平台的麦弗逊悬架硬点布置程序:匹配转向拉杆与车轮参数的初版坐标计算系统

程序名称:麦弗逊悬架硬点布置 开发平台:基于matlab平台 计算内容:根据设计输入,布置麦弗逊悬架硬点坐标,匹配转向拉杆断开点,匹配车轮外倾角和前束值,从而获得硬点初版坐标。 适用对象&#xff…

2026/7/5 8:50:59 阅读更多 →
从安装到卸载:Miniconda3在macOS上的完整生命周期管理(含环境变量清理技巧)

从安装到卸载:Miniconda3在macOS上的完整生命周期管理(含环境变量清理技巧)

从安装到卸载:Miniconda3在macOS上的完整生命周期管理(含环境变量清理技巧) 如果你是一位在macOS上工作的开发者,尤其是使用Apple Silicon芯片(M1/M2/M3)的MacBook用户,那么管理Python环境几乎是…

2026/5/17 10:35:19 阅读更多 →

最新新闻

构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进

构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进

构建弹性FastDFS文件存储系统:从超时容错到全链路治理的架构演进 【免费下载链接】fastdfs FastDFS is a high performance distributed file system (DFS). Its major functions include: file storing, file syncing and file accessing, and design for high cap…

2026/7/6 21:10:05 阅读更多 →
Hugo Blog Awesome RSS Feed配置:让读者随时订阅你的内容

Hugo Blog Awesome RSS Feed配置:让读者随时订阅你的内容

Hugo Blog Awesome RSS Feed配置:让读者随时订阅你的内容 【免费下载链接】hugo-blog-awesome Fast, minimal blog with dark mode support. 项目地址: https://gitcode.com/gh_mirrors/hu/hugo-blog-awesome Hugo Blog Awesome是一款支持暗色模式的快速极简…

2026/7/6 21:10:05 阅读更多 →
企业级React组件库架构设计:如何通过开放代码模式解决前端组件复用难题

企业级React组件库架构设计:如何通过开放代码模式解决前端组件复用难题

企业级React组件库架构设计:如何通过开放代码模式解决前端组件复用难题 【免费下载链接】ui A set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code. 项目地址:…

2026/7/6 21:08:01 阅读更多 →
zgrab输出数据解析:JSON格式与网络情报提取指南

zgrab输出数据解析:JSON格式与网络情报提取指南

zgrab输出数据解析:JSON格式与网络情报提取指南 【免费下载链接】zgrab **DEPRECATED** This project has been replaced by https://github.com/zmap/zgrab2 项目地址: https://gitcode.com/gh_mirrors/zg/zgrab zgrab是一款功能强大的网络扫描工具&#xf…

2026/7/6 21:03:58 阅读更多 →
5个实战场景深度解析:如何高效使用动态网格组件

5个实战场景深度解析:如何高效使用动态网格组件

5个实战场景深度解析:如何高效使用动态网格组件 【免费下载链接】RealtimeMeshComponent Unreal Engine 5 plugin component for rendering runtime generated content. 项目地址: https://gitcode.com/gh_mirrors/re/RealtimeMeshComponent RealtimeMeshCom…

2026/7/6 21:01:56 阅读更多 →
专业级FOC电机控制:开源平衡车固件架构深度解析

专业级FOC电机控制:开源平衡车固件架构深度解析

专业级FOC电机控制:开源平衡车固件架构深度解析 【免费下载链接】hoverboard-firmware-hack-FOC With Field Oriented Control (FOC) 项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC hoverboard-firmware-hack-FOC是一款基…

2026/7/6 21:01:56 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻