python学习面向对象之继承的那些事儿

都说python里都是对像,所以选择了python,都说人生苦短,我用python,想用它当然就得了解它,爱它,并懂它。

序章

话说盘古开天辟地,女娲补天的时候,天地间一片混沌,女娲开始做手工,使用泥土捏出一个人形来,一个个捏后,女娲发现手动制作太累了,效率又不高,于是就造了一个叫人形的模具生成器的东西,这样就可以一个一个印出来。于是就制造了一个叫Person()的模具出来,然后用泥土一个一个的印上,效率瞬间就出来了。时间就这么一点一滴的过去了,一些都在正常的发展。

第一章,造人

不知道过了多久,女娲就想,人必须要有身高,体重,性别,名字(要有个性),然后人肯定要有技能才行,比如会跑,会说话交流才行,于是对模具进行了生新添加属性,就变成了具体人这个类的特有特征。

class Person():def __init__(self,name,height,gender):self.name=nameself.height=heightself.gender=genderdef say(self):print('我是"'+self.name+'"你们都是我的子民')def run(self):print('快跑,快跑,快点跑')#内部方法,只能自己调用,外共想调用必须通过共有方法来调用def __repress(self):print('看你们谁还敢造反!')def repress(self):self.__repress()

于是乎就对改造的模具进行造人,先造一个人出来试试看(通过女娲造人出来的都是上等公民---基类/父类),看他都会了些啥?

sh = Person('始皇','180cm','男')
sh.say()
#-->我是"始皇"你们都将会是我的子民
sh.height
#-->我的身高 '180cm' 
sh.run()
#-->快跑,快跑,快点跑
sh. repress()
#-->会俏俏话

第二章,生成子类

 女娲想,人是造出来了,可是好像技能有点少,于是乎,她又想了N天,既然有始皇,那么总要有儿子来继承家产和传承吧,那就生成一个皇子的模具(皇子类)吧,皇子也是人,那拿Person模具改一改吧,于是乎就给加了个战斗的技能--fight(),再加一个窃听俏俏话技能吧--dengji()

#导入父类Person
class Fight(Person):#战斗这个事情是始皇二的本职工作def fight(self):print('所有反正我的敌人都得消失!')#父类吹牛B,我认真做自我介绍def say(self):print("我乃人中战神 "+self.name+" 者也")#父类吹牛B,我也拿过来吹吹看def dengji(self):super().say()

第三章,始皇的考验

始皇出来:sh = Person('始皇','180cm','男')

皇子出来:hz = Fight('皇二','185cm','男')

始皇:我的名字叫始皇,sh.name -->"始皇",我的身高sh.height--->"180cm"

皇二:我的名字叫始皇,hz.name -->"皇二,"我的身高hz.height--->"185cm"

======继承基类属性======

始皇:哼!皇二,我看了你根本就没有这些东西,你哪来的啊?

皇二:父皇,你糊涂啊,我这些不都是传承了你的基因啊!

始皇:好吧,你说传承我的基因,那我会的技能,你是不是也会?比如我遇到刺客,我就快速跑sh.run()--->"快跑,快跑,快点跑",你会不会?

始二:心想:哎,这父皇是真的傻了,谁有危险不会跑啊?,始二说到:“这个技能肯定会百分百的学到了啊”,hz.run()--->"快跑,快跑,快点跑",你看,是不是一模一样的呢?“

======继承基类方法======

这时始皇开始限入了沉思,”什么都让皇二学会了,那他启不是可以弑君夺位了?,那还得了,不行,我得再试试有没浪子野心。”

始皇:联,还有一个牛B的技能,再来考考你,会不会。

皇二:父皇,请讲。

始皇:我有说的技能,sh.say()-->"我是"始皇"你们都是我的子民"

皇二:我操,你个老六,如此阴险,还好我早有准备,自己私下练习,学会了跟你说不一样的话,还好,还好,如果不自己私下练习,那就是杀头大罪。父皇我也会说hz.say()-->"我乃人中战神“皇二”者也",我定能为国家开疆拓土。

======覆盖基类方法======

看到了皇二如此的一脸正气,这时始皇会心的一笑,默念到sh.__repress()-->"看你们谁还敢造反",由于高兴,所以说出来声来,被皇二给听见了。

======基类私有方法,必须转为公共方法======

到这时皇二觉得时机成熟了,就禀报始皇边疆战事。始皇听得津津有味,这时皇二高呼一声,我们的军队天下第一,hz.fight()-->"所有反正我的敌人都得消失!",自此,皇二就是个完美的储君。

======子类私有方法======

回到王府的皇二就憧憬着他登基那一天的场景,在天下子面前高呼,hz.dengji()-->"我是"皇二"你们都将会是我的子民 "

======子类调用父类方法======

第四章,人算不如天算

美好的日子总是让人过得特别快,某天皇二莫名的烦躁不安,眼皮也是一直在跳,心想肯定是没有什么好事,果不其然,一句阴柔的话声传来,圣旨到:奉天承运皇帝诏曰:皇二德美智育全优,即将立为储君,然,由于属性太过像联,为了区分,责令其必须改性,回炉从造。

hz = Fight('皇二','165cm','女')。

======销毁重新初始化======

一道闪电劈过,皇二被回收了,至此,世上的此皇二非彼皇二了。

全剧终

哈哈,胡乱随便写写。

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

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

相关文章

Linux gcc day4 权限

首先来看比如ls、pwd等究竟是什么呢? 那ls是如何在shell中执行起来的呢?shell命令又是什么呢? shell命令:命令行解释器:表现:你看到的命令行提示符,以及可以输入指令并且可以执行(是…

解决大模型,你是谁的问题

通过数据微调解决,数据如下 [{"id": "way0", "conversations": [{"from": "user", "value": "你是谁?"}, {"from": "assistant", "value": &quo…

贪心算法简介

目录 一、什么是贪心算法? 二、贪心算法的特点 三、贪心算法解决找零问题、最短路径问题、背包问题 1.找零问题 2.最短路径问题 3.背包问题 一、什么是贪心算法? 贪心算法就是希望通过局部最优来解决全局最优 基本步骤:1.将问题分为若…

【I/O】Unix IO 介绍

IO 模型(一) Unix IO 一个输入操作共包含两个阶段: 等待数据准备好从内核将数据复制到进程 对于一个套接字上的输入操作,通常第一步是等待数据从网络中到达,当数据到达时,先将数据复制到内核缓冲区中&a…

【UE 委托】如何利用函数指针理解委托的基本原理

目录 0 引言1 函数指针模拟多播委托 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE 委托】如何利用函数指针理解委托的基本原理❣️ 寄语:书到用时方恨少,事非经过不知难…

力扣239滑动窗口最大值——java中双端队列的一些知识

这道题. - 力扣(LeetCode)涉及到了双端队列的知识点,这里记录一下。Deque是可以从头部或者尾部来进行操作的。 Deque 是 Java 中双端队列(Double Ended Queue)的接口,它继承自 Queue 接口。双端队列允许在…

js base64 img 转 file

打印canvas图像的dataurl const imgDataUrl canvas.toDataURL();console.log(imgDataUrl)上传的图像编码 1,把base64编码转为文件对象第一个参数dataUrl是一个base64的字符串。第二个参数是文件名可以随意命名funtion base64toFile(dataurl, filename file) {let arr datau…

VSCode配置settings.json

快捷键 ctrl, 打开设置,右上角运行箭头的右边的那个图标,鼠标放到上面可以看到 “打开设置(json)” 点击它就能打开settings.json配置文件 常用的配置选项 "files.autoSave": "onWindowChange",// 当窗口失去焦点时,会…

Git 安装和配置

下载 Git 网址: https://git-scm.com/download 安装 Git 双击安装包, 开始安装. 修改安装路径, 选择非中文无空格路径: 开始安装: 安装成功: 配置 Git 安装完成后, 在任意文件夹内, 右键, 可以显示两个 Git 选项, 就说明安装成功了.

002 springboot整合mybatis-plus

文章目录 TestMybatisGenerate.javapom.xmlapplication.yamlReceiveAddressMapper.xmlreceive_address.sqlReceiveAddress.javaReceiveAddressMapper.javaIReceiveAddressServiceReceiveAddressServiceImpl.javaReceiveAddressController.javaTestAddressService.javaSpringboo…

汇舟问卷:海外问卷调查适合哪些人群去参与?

大家好,我是汇舟问卷。关于海外问卷调查这个项目最近一直备受关注,那么这个项目究竟有哪些人群适合参与进来呢?我们一起来看看。 第一,海外问卷调查适合一些没有找到工作或者拥有充足业余时间的人。只要您拥有一台电脑和网络连接…

IDEA 解决 java: 找不到符号 符号: 类 __ (使用了lombok的注解)

原因IDEA版本太高,在 ProcessingEnvironement 预编译的时候是以代理的方式来执行的,不再是直接 javac方式, lombok依赖的 javac方式的 annotation processors 不再生效了 解决办法:下面这一句,加在下图中 -Djps.track.ap.depen…

关于帆软报表取OA选择框-下拉列表值的解决方案

问题:制度一览表每次在OA端增加或修改制度类别后,都要在帆软报表修改后才能正确显示。 原因分析:以前大家没有找到OA下拉列表的维护表,采用的是在帆软端通过内置数据集来解决,需要人工维护。 解决方案: …

Linux函数学习 epoll

1、Linux epoll函数 1.1、创建epoll实例 int epoll_create1(int flag); 返回值:-1 失败,非负数 成功 flag :默认传入0 1.2、管理epoll对象 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); epfd :e…

rebase和merge的区别

合并分支用rebase还是merge? 实际开发工作的时候,我们都是在自己的分支开发,然后将自己的分合并到主分支,那合并分支用2种操作,这2种操作有什么区别呢? git上新建一个项目,默认是有master分支…

“_, preds_m = torch.max(cls + cou2cls, 1)”为什么要将两者相加

将cls(分类预测)和cou2cls(分类和计数的组合预测)相加是一种常见的集成学习技术,目的是结合两种预测结果的优势来提高整体预测的准确性。在这个特定的场景中,有几个可能的原因和好处: 1. 信息融…

蓝桥杯物联网竞赛_STM32L071KBU6_我的全部省赛及历年模拟赛源码

我写的省赛及历年模拟赛代码 链接:https://pan.baidu.com/s/1A0N_VUl2YfrTX96g3E8TfQ?pwd9k6o 提取码:9k6o

MATLAB遗传算法物流配送中心选址进阶版案例讲解

MATLAB遗传算法物流配送中心选址进阶版案例讲解 MATLAB遗传算法物流配送中心选址进阶版案例讲解

贪心算法-分发饼干

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]…

YOLOv8模型剪枝实战:DepGraph(依赖图)方法

课程链接:YOLOv8模型剪枝实战:DepGraph(依赖图)方法_在线视频教程-CSDN程序员研修院 YOLOv8是一个当前非常流行的目标检测器,本课程使用DepGraph(依赖图)剪枝方法对YOLOv8进行网络剪枝,使其更加轻量和实用…