Python | 刷题笔记

继承

class Father:__secret="you are your own kid"stroy="i'am a handsome boy..."def  tellstory(self):print("我的故事:",self.stroy)def  __tellstory(self):print("我的秘密:",Father.__secret)
class Son(Father):def tell(self):Father._Father__tellstory(self)#调用父类的私有函数 父类名打点_父类名__私有函数名(self)self.tellstory()
s1=Son()
s1.tell()

覆盖+重写父类函数


class Pet:def  __init__(self,name):self.name=nameprint(f"一个名叫{self.name}的宠物出生了")def eat(self):print(f'{self.name}在吃东西...')
class Dog(Pet):def lookAfter(self):print(f'{self.name}在看门')def eat(self):print(f'{self.name}在啃骨头')
class Cat(Pet):def __init__(self,name,age,sex):super().__init__(name)#利用父类自带的函数初始化self.age=ageself.sex=sexdef eat(self):super().eat()#利用继承中的super()打点调用父类函数print(f'{self.name}吃完东西后用唾液洗洗脸')
c1=Cat("大橘",17,"女孩纸")
c1.eat()

多层继承

class Father:def getq(self):print("father 爆金币")
class Monther:def getq(self):print("monther 爆金币")
class Child(Father,Monther):def getq(self):super().getq()print("我有钱!")
c1=Child()
c1.getq()

 father 爆金币
我有钱!

子类调用父类时,调用对象的顺序是深度优先

 

class GrandFather:def getMoney(self):print("爷爷给了零花钱....")class Father(GrandFather):passclass Mother:def getMoney(self):print("母亲给了零花钱....")# 继承Father和Mother
class Child(Father, Mother):def getMoney(self):super().getMoney()print("孩子有了零花钱.....")c1=Child()
c1.getMoney()
print(Child.mro())#子类的调用顺序

 

爷爷给了零花钱....
孩子有了零花钱.....
[<class '__main__.Child'>, <class '__main__.Father'>, <class '__main__.GrandFather'>, <class '__main__.Mother'>, <class 'object'>] 

初始化是广搜

class Human():def __init__(self):print("人类...")
class Father(Human):def __init__(self):print("父亲开始初始化...")super().__init__()print("父亲初始化结束...")
class Monther(Human):def __init__(self):print("母亲开始初始化...")super().__init__()print("母亲初始化结束...")
class Child(Father,Monther):def __init__(self):print("孩子开始初始化...")super().__init__()print("孩子初始化结束...")
c1=Child()

 孩子开始初始化...
父亲开始初始化...
母亲开始初始化...
人类...
母亲初始化结束...
父亲初始化结束...
孩子初始化结束...


多态

这里传入的是v,在调用animallEating时需要调用eating对象
而venusFlaytrap类也具有对象eating,在python中可以直接调用
即便两个类之间没有继承关系,也可以调用

class Animal:def eating(self):print("动物下在吃东西.....")class Pet(Animal):def eating(self):print("宠物在吃东西.....")class Dog(Pet):def eating(self):print("狗在啃骨头.....")class Cat(Pet):def eating(self):print("猫在吃鱼....")class Zoo:def animallEating(self, animal):if isinstance(animal, Animal):print("这是展示动物吃东西的地方:")else:print("这是非动物吃饭的展示")animal.eating()class venusFlytrap:def eating(self):print("捕蝇草在吃小虫子.....")v = venusFlytrap()
z = Zoo()
# z是Zoo类但是可以调用venusFlytrap类的对象
z.animallEating(v)

 type isinstance异同

isinstance 会判断父类

type条件较为严格

c=Cat()
#判断类型时,只看直接类型
#type是严格满足类型
print(type(c) is Cat) #True
print(type(c) is Animal) #False
print(type(c) is Pet) #False#isinstance 判断对象是否为一个类型的实例
# 判断实例类型时,涵盖父类的类型
print("*"*30)
print(isinstance(c,Cat)) #True
print(isinstance(c,Pet)) #True
print(isinstance(c,Animal)) #True
print(isinstance(v,Animal)) #False

静态方法和类方法

Python——类方法和静态方法_python类方法和静态方法-CSDN博客 

静态:(打印或者是绘图)不需要创建对象的时候可以使用

# 静态方法:用@staticmethod装饰的不带self参数的方法叫做静态方法
#        类的静态方法可以没有参数,可以直接使用类调用class Dog:@staticmethoddef bark():#这里没有selfprint("wangwang!")d = Dog()
d.bark()
Dog.bark()

静态方法不能通过self和类名访问成员变量 

类方法:

class Dog:legs = 4teeth = 42# 类方法@classmethoddef printInfo(cls):print(f"狗有{cls.legs}条腿,{cls.teeth}颗牙齿")d = Dog()
d.printInfo()
Dog.printInfo()

两者均可以使用类名和对象名打点调用函数

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

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

相关文章

XML解析库tinyxml2库使用详解

XML语法规则介绍及总结-CSDN博客 TinyXML-2 是一个简单轻量级的 C XML 解析库,它提供了一种快速、高效地解析 XML 文档的方式。 1. 下载地址 Gitee 极速下载/tinyxml2 2. 基本用法 下面将详细介绍 TinyXML-2 的主要使用方法: 2.1. 引入头文件和命名空间 #i…

Acrobat Pro DC 2023 for Mac/Win:全平台PDF编辑器的终极解决方案

对于需要处理PDF文档的个人和企业用户来说&#xff0c;Adobe Acrobat Pro DC 2023是一款不可或缺的工具。作为全球领先的PDF编辑器&#xff0c;Acrobat Pro DC 2023在Mac和Windows平台上提供了丰富的功能和令人印象深刻的性能&#xff0c;使其成为用户编辑、转换和管理PDF文档的…

Vue09-事件处理

一、一个简单的示例 v-on&#xff1a;当xxx的时候。 二、事件处理 2-1、参数说明 <div id"root"><h1>你好呀&#xff0c;{{name}}</h1><button v-on:click"showinfo">点击我</button></div><script>new Vue({e…

像素着色技术在AI绘画中的革新作用

摘要&#xff1a;随着人工智能技术的不断进步&#xff0c;AI绘画已成为艺术和技术领域中的一个热门话题。本文将探讨像素着色技术在AI绘画中的应用及其对创作过程的影响&#xff0c;揭示这一技术如何推动艺术创作的革新。 引言&#xff1a; 传统的绘画方法要求艺术家具备高超的…

堆排序-调整算法

个人主页点这里!~ 1.堆 了解堆排序首先要了解一下堆这个数据结构 堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;它通常被表示为一个完全二叉树或近似完全二叉树&#xff0c;并且满足堆性质&#xff08;Heap Property&#xff09;。堆主要分为两种&…

【web前端开发】标签(基础知识详解)

浏览器能识别的标签 编码 <meta charset"UTF-8"> title <title>helloshh</title> 标题 <h1>1级标签</h1> <h2>2级标签</h2> <h3>3级标签</h3> <h4>4级标签</h4> <h5>5级标签</h5> &…

【Mtk Camera开发学习】01 MTK 平台Camera BringUp

本专栏内容针对 “知识星球”成员免费&#xff0c;欢迎关注公众号&#xff1a;小驰行动派&#xff0c;加入知识星球。 #MTK Camera开发学习系列 #小驰私房菜 这篇文章主要介绍MTK 平台&#xff0c;Camera BringUp会涉及到修改的模块。 MTK不同的平台系列&#xff0c;具体修改…

mysql order by后跟case when

在SQL中&#xff0c;ORDER BY子句用于对查询结果进行排序。当在ORDER BY后面使用CASE语句时&#xff0c;它的原理是&#xff1a;根据CASE语句中定义的条件和结果&#xff0c;为查询结果集中的每一行生成一个临时的排序值。然后&#xff0c;根据这些排序值对结果集进行排序。 具…

突发!凌晨4点某制造业大厂国产数据库集群故障...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

GIT生成SSH公钥图文教程

参考&#xff1a;GIT生成SSH公钥图文教程-CSDN博客 这样做好之后&#xff0c;如果要在D盘目录下载代码&#xff0c;则把id_rsa和id_rsa.pub拷贝到对应目录下 不能使用ToitoiseGit下载代码&#xff0c;只能使用Git Bash下载文件 git clone ssh://xxx.git

vivado DIAGRAM、HW_AXI

图表 描述 块设计&#xff08;.bd&#xff09;是在IP中创建的互连IP核的复杂系统 Vivado设计套件的集成商。Vivado IP集成器可让您创建复杂的 通过实例化和互连Vivado IP目录中的IP进行系统设计。一块 设计是一种分层设计&#xff0c;可以写入磁盘上的文件&#xff08;.bd&…

深入解析Kafka消息传递的可靠性保证机制

深入解析Kafka消息传递的可靠性保证机制 Kafka在设计上提供了不同层次的消息传递保证&#xff0c;包括at most once&#xff08;至多一次&#xff09;、at least once&#xff08;至少一次&#xff09;和exactly once&#xff08;精确一次&#xff09;。每种保证通过不同的机制…

AI绘画中的图像格式技术

在数字艺术的广阔天地里&#xff0c;AI绘画作为一种新兴的艺术形式&#xff0c;正在逐渐占据一席之地。不同于传统绘画&#xff0c;AI绘画依赖于复杂的算法和机器学习模型来生成图像&#xff0c;而这一切的背后&#xff0c;图像格式技术发挥着至关重要的作用。图像格式不仅关系…

量化视频1---qmt实盘交易链接,提供源代码

量化视频1---qmt实盘交易链接&#xff0c;提供源代码 量化视频1---qmt实盘交易链接&#xff0c;提供源代码 (qq.com) 源代码 from qmt_trader.qmt_trader import qmt_tradertraderqmt_trader(path rD:/国金QMT交易端模拟/userdata_mini, session_id 123456…

在Java、Java Web中放置图片、视频、音频、图像文件的方法

在Java软件中放置图片&#xff0c;通常涉及将图片文件&#xff08;如JPEG、PNG等&#xff09;作为资源包含在我们的项目中&#xff0c;并在代码中通过适当的方式引用这些资源。这可以通过多种方式实现&#xff0c;但最常见的是在Java桌面应用&#xff08;如Swing或JavaFX&#…

CTF Show MISC做题笔记

MISCX 30 题目压缩包为misc2.rar,其中包含三个文件:misc1.zip, flag.txt, hint.txt。其中后两个文件是加密的。 先解压出misc1.zip, 发现其中包含两个文件&#xff1a;misc.png和music.doc。其中后面文件是加密的。 解压出misc.png,发现图片尾部有消息&#xff1a;flag{flag…

最新区块链论文速读--CCF A会议 CCS 2023 共25篇 附pdf下载(2/4)

Conference&#xff1a;ACM Conference on Computer and Communications Security (CCS) CCF level&#xff1a;CCF A Categories&#xff1a;network and information security Year&#xff1a;2023 Num&#xff1a;25 第1~7篇区块链文章请点击此处查看上篇 8 Title: P…

【C/C++】IO流

目录 前言&#xff1a; 一&#xff0c;C语言的I/O流 二&#xff0c;C的I/O流 2-1&#xff0c;C标准IO流 2-2&#xff0c;IO流的连续输入 前言&#xff1a; “流”即是流动的意思&#xff0c;是物质从一处向另一处流动的过程&#xff0c;是对一种有序连续且具有方向性的数据…

测试基础11:测试用例设计方法-等价类划分

课程大纲 1、概述 1.1测试用例设计方法意义 穷举测试&#xff1a;每种输入都测一次。最完备&#xff0c;但不现实。 使用设计方法&#xff0c;用最少的数据&#xff08;成本&#xff09;&#xff0c;实现最大的测试覆盖。 1.2常用设计方法 ①等价类划分 ②边界值分析 ③错误推…

Python采集东方财富网股票数据建立LSTM模型预测

Python采集东方财富网股票数据建立LSTM模型预测 一、数据爬取流程二、爬虫完整代码三、LSTM模型建模预测3.1 项目背景3.2 建模预测流程3.3 数据预处理3.4 数据可视化3.5 特征工程3.6 数据缩放3.7 数据转换3.8 模型创建3.9 评价模型3.10 可视化结果3.11 总结一、数据爬取流程 先…