首页 > 其他分享 >动静态方法、类的继承及查找顺序

动静态方法、类的继承及查找顺序

时间:2022-11-03 19:33:25浏览次数:54  
标签:顺序 静态方法 继承 对象 查找 名称 方法 类中

昨日内容回顾

  • 对象的概念

    python中一切存在均为对象,对象是名称与功能的结合。

  • 编程思想两大组成

    编程思想按照关注点可以分为面向过程及面向对象。

    面向过程编程关注事件进行的流程,一个事件的结束就标志着该段编程的终点。

    面向对象编程关注对象的状态,不关注对象经历的事件。

  • 类与对象的定义

    使用class加类名的方式定义类,类名加括号生成对象。

  • 类与对象的基本操作

    查看名称空间 使用类名/对象名点双下dict方法查看。

    新增或修改名称 类名/对象名点变量名赋值。

    生成对象时要求传参 定义类时,使用双下init方法指定形参及赋值规则。

今日内容概要

  • 动态方法及静态方法
  • 类的继承本质
  • 经典类与新式类
  • 类中名称的查找顺序
  • 方法的派生

今日内容详细

动态方法及静态方法

在定义类中的方法时,默认会将将来调用方法的对象作为第一个参数传给方法。

在python中,默认类中所有的方法均为动态方法,即在对象调用方法时,将方法的复制与对象绑定。

若要使用静态方法,需要在定义方法时使用staticmethod装饰器语法糖。这样在将来调用类中该方法时即可自由传入参数,不过类中的方法与自身无关的话在类中的意义就不大了,因此静态方法使用不多。

一般对象在调用类中方法时,无法直接访问类中方法的本体,若要使调用方法时直接访问其本体,要在定义方法时使用classmethod装饰器语法糖。

类的继承本质

一个类想要使用另一个类的功能时,可以使用类的继承,被继承的类通常称作父类,继承其他类的类通常称作子类。子类除了使用父类的名称及功能之外,还可以有自己独有的名称及方法。

父类与子类的关系类似于类与对象的关系。

类的继承最本质的目的是为了节省代码空间。

经典类与新式类

python中定义的类默认为新式类,即在定义时继承了object或其子类。

经典类即在定义时没有继承任何类的类。python2中默认创建的是经典类。

若要在python3中创建经典类,,,,,,

类中名称的查找顺序

没有类的继承时

在没有类的继承时,对象调用某个名称时,若对象内有该名称则使用该名称对应的数据,若对象自身没有,则调用其所属的类的该名称,若其所属的对象内也没有该名称,则报错。

类的单线继承时

在存在类的单线继承时,调用名称的顺序从调用者的层级开始,逐级向其父类查找。

类的多线不收束继承时

此时,按照继承的顺序从左向右查找,若每条线不止一个节点,则该线查找结束后才会去下条线查找。

类的多线且收束继承时

此时,与不收束继承大致相似,唯一区别是最终的收束节点在最后一条支线查找完成后才能抵达。

方法的派生

方法的派生就是利用类的继承,在原方法的基础上,增加个性化的功能,以完成更加复杂的操作。

标签:顺序,静态方法,继承,对象,查找,名称,方法,类中
From: https://www.cnblogs.com/akazukis/p/16855587.html

相关文章

  • 11月3日内容总结——对象之动静态方法、继承及相关知识点、类中名称查找顺序及经典类
    目录一、动静态方法动态方法静态方法二、面向对象之继承的概念面向对象三大特性1.继承的含义2.继承的目的3.继承解决了什么问题4.多继承的优缺点5.继承的实操三、继承的本......
  • 动静态、继承本质、对象名字查找顺序
    目录动静态方法面向对象之继承的概念继承的本质名字的查找顺序经典类与新式类派生方法动静态方法在类中定义的函数有多种特性1.绑定给对象的方法classStudent:sc......
  • 动静态方法、多继承与派生
    1.动静态方法1.在类中的定义的函数有多种属性"""类名加括号会产生一个对象,对象用点函数名的方式不用传参因为func1会把gro当做参数传进去。类名点函数名需要传一个参数......
  • 模板、特化模板和普通函数混用时的的匹配顺序
      有普通函数、总是会先调普通的函数、如上图、鼠标停在foo(3.0)上时会有一个对于普通函数的高亮如果没普通函数、而是有特化、那么会调用特化:   总结:编译器......
  • Python基础指面向对象:2、动静态方法
    面向对象一、动静态方法在类中定义的函数有多种特性1、直接在类中定义函数​ 再类中直接定义函数,默认绑定给对象,类调用时有几个参数就要传几个参数,对象调用时该函数......
  • 面向对象:继承、动静态方法
    目录一、动静态方法1类中直接定义函数2被@classmethod修饰的函数3静态函数被@staticmethod修饰的函数二、面向对象-继承1面向对象三大特性2继承的概念1.继承的......
  • 面向对象2、动静态方法、继承、名字查找顺序、经典类、新式类、派生方法
    目录今日内容概要今日内容详细动静态方法面向对象之继承的概念继承的本质名字的查找顺序经典类与新式类派生方法作业今日内容概要动静态方法面向对象之继承理论继承基......
  • 【C语言数据结构】EP1顺序表
    1.什么是顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为静态表与动......
  • JS常用方法汇总顺序
    顺序a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z一、数组方法 join() join() 方法也可将所有数组元素结合为一个字符串。它的......
  • 线性表_顺序表简单实现
    #include<stdlib.h>#include<stdio.h>#include<stdbool.h>#defineElementTypeint#defineMAXSIZE100#defineERROR-1typedefintPosition;typedefstruc......