【Python零基础入门篇 · 24】:面向对象的多态、静态方法和类方法

简介: 【Python零基础入门篇 · 24】:面向对象的多态、静态方法和类方法

面向对象的多态


多态特征:一个对象具有多种形态, 在不同的使用环境中以不同的形态展示其功能, 那么我们就称该对象具有多态特征。


  • 多态发生在具有继承关系的基础之上。


  • 多态不关注对象的类型,只关注对象具有的行为


  • 不同的子类对象,调用相同的父类方法,就会有不同的结果。


例如:“+”号,不同的对象使用,就会有不同的结果

02e714ed2a294f7fb17e1fd738c1da81.png


第一种多态展示

7f90895839774cee83334a116d15c9c0.png


第二种多态展示

定义统一接线口,一个接口,多种实现。

19fbe878fe3c453eb14487bba37067d8.png





静态方法和类方法


静态方法

使用装饰器:@staticmethod


定义格式:

class 类名:           
            @staticmethod           
             def 方法名(形参):                 
                    方法体


调用格式:


  • 类名.方法名(实参)


  • 对象名.方法名(实参)


ecd70c9b786d4a0ca2f35a2e17624bc7.png



类方法


类方法:针对类对象定义的方法


注意:类方法内部可以直接访问类属性,或者调用其他类方法。

定义格式:

class 类名:           
    @classmethod           
    def 方法名(形参):                 
            方法体



调用格式:


  • 类名.方法名(实参)


  • 对象名.方法名(实参) 不常用



例1:在实例方法中访问类属性

a79026db2aa6416098d9a664cb33d039.png

例2:在类方法中访问类属性

7e46e16260944d59ba2edc76fb3906dc.png


在类方法中访问不了实例属性,会报错。

f2451c33a99e4f9b97b647ffbe91febb.png




总结


  • 实例方法:方法内部访问实例属性,方法内部可以通过类名、类属性名来访问类属性


  • 静态方法:方法内部不需要访问实例属性和类属性


  • 类方法:方法内部只需要访问类属性


相关文章
|
9月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
595 1
|
10月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
357 2
|
9月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
1487 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
9月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
9月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
283 0
|
10月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
565 0
|
Java 程序员 Python
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
|
Python
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
面向对象和面向过程,是两种编程思想. 编程思想是指对待同一个问题,解决问题的套路方式.面向过程: 注重的过程,实现的细节.亲力亲为.面向对象: 关注的是结果, 偷懒.类和对象,是面向对象中非常重要的两个概念object 是所有的类基类,即最初始的类class 类名(object): 类中的代码PEP8代码规范:类定义的前后,需要两个空行 创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840 8.类内部操作属性 sel
604 1
Python面向对象、类的抽象、类的定义、类名遵循大驼峰的命名规范创建对象、类外部添加和获取对象属性、类内部操作属性魔法方法__init__()__str__()__del__()__repr__()
|
设计模式 安全 Java
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
称为类 B 继承类 A 特点: B类的对象可以使用 A类的属性和方法 优点: 代码复用.重复相同的代码不用多次书写. 名词: 类A: 父类 基类 类B: 子类 派生类 2. 单继承和多层继承[理解] 单继承: 如果一个类只有一个父类,把这种继承关系称为单继承 多继承: 如果一个类有多个父类,把这种继承关系称为多继承 多层继承: C–> B --> A 3. 子类重写父类的同名方法[掌握] 重写: 子类定义和父类名字相同的方法. 为什么重写: 父类中的方法,不能满足子类对象的需求,所以
1025 1
Python面向对象、继承的基本语法、单继承和多层继承、子类重写父类的同名方法、子类调用父类的同名方法、继承中的 init 、 多继承、私有权限、类属性、类方法、静态方法、多态、鸭子类型
python 面向对象之类【1】详解
python 面向对象之类【1】详解

推荐镜像

更多