首页 > 其他分享 >day23 面向对象进阶

day23 面向对象进阶

时间:2023-12-19 20:55:05浏览次数:41  
标签:__ 进阶 继承 self Father day23 面向对象 鸭子 args1

属性查找顺序:对象本身→类

对于类而言,self就是一个普通形参
对于对象而言,self就是对象本身

 

类的继承:减少重复 #自己写的时候不推荐使用继承 继承多个的时候功能会混乱
继承后子类会拿到父类的所有东西
class father():
class son(father):

继承后的属性查找顺序:对象自己→类→父类

类的派生:在继承的基础上再添加属性
class Son(Father):
def __init__(self,Son_args1,Sonargs2,Father_args1,Father_args2):
super().__init__(Father_args1,Father_args2)
Son的新属性

类的组合:
与函数名一样,类的对象也有四种用法:
①引用(赋值)
②做实参
③做返回值
④做容器的元素

菱形继承问题:
新式类(py3) 广度优先:从左到右,搜索完同一层级的时候,向上爬升。
经典类(py2)深度优先


多态与多态性:
鸭子类型:长得像鸭子,叫的也像鸭子,那它就是一只鸭子(或鸭子的一种形态)
父类规定了必须使用的方法

 

标签:__,进阶,继承,self,Father,day23,面向对象,鸭子,args1
From: https://www.cnblogs.com/yyyjw/p/17914715.html

相关文章

  • 2023强网杯ez_fmt题解及进阶格式化之劫持子函数
    格式化任意内存读写相信已经是老生常谈了,但是随着题目难度加大,格式化题目给我们的难题逐渐变成了覆写什么,改写什么。这题对我是一道很好的例题,其中对栈及函数调用的理解堪称刷新我的认知。exp先放着,想自己调试理解的可以看看。frompwnimport*context(terminal=['tmux','......
  • Redis进阶:Lua初尝试
    Lua是一门脚本语言,可以编写Lua脚本到Redis中执行 【使用Lua脚本的优点】1.减少网络开销。Redis每条命令都需要进行网络传输,特别是命令条数很多的情况。2.原子操作。脚本都会作为一个整体执行,中间不会有其他命令插入。3.复用。会永远存储在Redis中比较类似Sql里面的存储过程......
  • 秦疆的Java课程笔记:76 面向对象 N中内部类
    内部类就是在一个类的内部再定义一个类。比如,在A类中定义一个B类,那么B类相对于A类来说就是内部类;相反,A类相对于B类就是外部类。秦疆老师声明,这小节主要是长长见识,实际编程作业中不推荐下列写法。成员内部类//先写一个有内部类的类=============================publiccl......
  • 刘方舟 VC++面向对象与可视化程序设计 黄维通
    注:由于题目不确定,整理知识点范围比较宽,适当选取1.内联函数     定义:定义在类体内的成员函数,即函数的函数体放在类体内     特点:在调用处用内联函数体的代码来替换,用于解决程序的运行效率问题。一定要在调用之前定义,并且内联函数无法递归调用。2.构造函数与析构......
  • Java面向对象程序设计(上海交通大学出版社)12章及以后的课后问题解析
    1)Map集合和Collection集合的区别是什么? Map集合和Collection集合都是Java集合框架中的接口,它们之间有一些关键的区别:元素存储方式:Collection:用于存储单一元素的集合接口。它继承自Iterable接口,包含常见的子接口如List、Set。Map:用于存储键值对(key-value......
  • 29道C++ 面向对象高频题整理(附答案背诵版)
    1、什么是类?在C++中,类是一种用户定义的数据类型,它可以包含数据成员和函数成员。数据成员用于存储与类相关的状态,而函数成员可以定义对这些数据进行操作的方法。可以把类想象为一个蓝图,根据这个蓝图可以创建对象,这些对象在内存中是类的实例。比如说,我们可以定义一个Car类来表示汽......
  • 秦疆的Java课程笔记:74 面向对象 抽象类
    abstract修饰符可以用来修饰方法,也可以用来修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的......
  • 在Python中,你可以使用面向对象的方法来创建一个甘特图的模板。以下是一个使用`matplot
    在Python中,你可以使用`matplotlib`或者`plotly`库来制作甘特图¹²⁴⁵。以下是一些示例:**使用matplotlib制作甘特图**¹:```pythonimportmatplotlib.pyplotasplt#设置字体和负号显示plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=F......
  • C#面向对象程序设计
    实验二面向对象程序设计一、实验目的理解类的定义、继承等面向对象的的基本概念;掌握C#语言定义类及其各种成员(字段,属性,方法)的方法;掌握方法覆盖的应用;掌握接口的定义和实现方法。二、实验要求根据要求,编写C#程序,并将程序代码和运行结果写入实验报告。三、实验内容设计......
  • 动态规划进阶
    数位DP常见的模板:询问\(l\simr\)中有多少个满足给定条件的数,\(1\lel\ler\le10^{18}\)。这种问题,数位DP可以做到\(O(\logv)\)级别,其中\(v\)是\(l,r\)的值域。思路直接枚举会枚举大量不可能满足条件的数,可以从数位入手。数位DP的算法流程如下:几个定义:\(len(......