三十一、Python基础语法(多态)

多态:多态是面向对象编程中的一个重要概念。多态意味着不同的对象可以对同一消息做出不同的响应。

一、多态的特点

动态绑定:在 Python 中,函数或方法的调用是在运行时根据对象的实际类型来确定的,而不是在编译时确定。这使得代码更加灵活,可以根据不同的对象类型执行不同的操作。

同一操作作用于不同的对象可以有不同的表现形式:对于同一个方法名,不同的对象可以有不同的实现方式。这使得代码可以更加通用,能够处理多种不同类型的对象。

二、多态的优势

提高代码的可扩展性和可维护性:当需要添加新的对象类型时,只需要实现相应的方法,而不需要修改现有的代码。

增强代码的灵活性和通用性:多态使得代码可以处理不同类型的对象,而不需要为每种对象类型编写特定的代码。

三、多态例子

python 复制代码
class Animal:
    # 定义父类 Animal 的方法 make_sound,此方法暂时没有具体实现
    def make_sound(self):
        pass


class Dog(Animal):
    # 重写父类方法,定义 Dog 类的 make_sound 方法,返回特定的声音
    def make_sound(self):
        return "汪汪汪"


class Cat(Animal):
    # 重写父类方法,定义 Cat 类的 make_sound 方法,返回特定的声音
    def make_sound(self):
        return "喵喵喵"


def animal_sound(animal):
    # 定义函数 animal_sound,接受一个 Animal 类型的参数
    # 此函数会调用传入对象的 make_sound 方法
    return animal.make_sound()


dog = Dog()
cat = Cat()

print(animal_sound(dog))
# 这里调用 animal_sound 函数并传入 Dog 类的实例 dog。
# 函数内部会根据多态性,调用 dog 对象的 make_sound 方法,返回"汪汪汪"。

print(animal_sound(cat))
# 同理,这里传入 Cat 类的实例 cat,函数调用 cat 对象的 make_sound 方法,返回"喵喵喵"。
相关推荐
CoderCodingNo26 分钟前
【GESP】C++一级真题 luogu-B4410 [GESP202509 一级] 金字塔
开发语言·c++
0思必得027 分钟前
[Web自动化] CSS基础概念和介绍
前端·css·python·自动化·html·web自动化
计算机徐师兄30 分钟前
Python基于Django的MOOC线上课程推荐数据分析与可视化系统(附源码,文档说明)
python·数据分析·django·慕课线上课程推荐·慕课线上课程推荐可视化系统·pytho线上课程推荐可视化·线上课程推荐数据分析可视化系统
free-elcmacom33 分钟前
Python实战项目<2>使用Graphviz绘制流程框图
开发语言·python·graphviz
ljuncong39 分钟前
python的装饰器怎么使用
开发语言·python
2501_944875511 小时前
Go后端工程师
开发语言·后端·golang
该用户已不存在1 小时前
没有这7款工具,难怪你的Python这么慢
后端·python
听风吟丶1 小时前
Java 反射机制深度解析:从原理到实战应用与性能优化
java·开发语言·性能优化
serve the people1 小时前
tensorflow 零基础吃透:RaggedTensor 的不规则形状与广播机制 2
人工智能·python·tensorflow
Hello.Reader1 小时前
Flink ML 基本概念Table API、Stage、Pipeline 与 Graph
大数据·python·flink