【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




总结


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


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


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


相关文章
|
14天前
|
Python
python魔法方法如何应用
【4月更文挑战第12天】这个Python示例展示了类继承和方法重写。`Student`类继承自`Person`,并覆盖了`say_hello`方法。通过`super().__init__(name)`调用父类的`__init__`初始化`name`属性,`Student`添加了`age`属性,并在重写的`say_hello`中使用。创建`Student`实例`student`并调用其`say_hello`,输出定制的问候信息。
20 1
|
2天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
3天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
21 0
|
3天前
|
Python
Python 一步一步教你用pyglet制作可播放音乐的扬声器类
Python 一步一步教你用pyglet制作可播放音乐的扬声器类
14 0
|
8天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
8天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
8天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
9天前
|
数据可视化 测试技术 Python
在Python和R中使用交叉验证方法提高模型性能
在Python和R中使用交叉验证方法提高模型性能
20 0
|
10天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
45 9
|
10天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
52 0