Python 中多态性的示例和类的继承多态性详解

 更新时间:2023年10月28日 09:44:21   作者:返回主页小万哥的博客圆子  
多态性通常在类的方法中使用,其中我们可以具有相同方法名称的多个类,本文给大家介绍Python 中多态性的示例和类的继承多态性详解,需要的朋友可以参考下

单词 "多态" 意味着 "多种形式",在编程中,它指的是具有相同名称的方法/函数/操作符,可以在许多不同的对象或类上执行。

函数多态性

一个示例是 Python 中的 len() 函数,它可以用于不同的对象。

字符串

对于字符串,len() 返回字符的数量:

示例

x = "Hello World!"
print(len(x))

元组

对于元组,len() 返回元组中项的数量:

示例

mytuple = ("apple", "banana", "cherry")
print(len(mytuple))

字典

对于字典,len() 返回字典中键/值对的数量:

示例

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(len(thisdict))

类的多态性

多态性通常在类的方法中使用,其中我们可以具有相同方法名称的多个类。例如,假设我们有三个类:Car、Boat 和 Plane,它们都有一个名为 move() 的方法:

示例

不同类具有相同的方法:

class Car:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model
  def move(self):
    print("Drive!")
class Boat:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model
  def move(self):
    print("Sail!")
class Plane:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model
  def move(self):
    print("Fly!")
car1 = Car("Ford", "Mustang")       # 创建一个 Car 类
boat1 = Boat("Ibiza", "Touring 20") # 创建一个 Boat 类
plane1 = Plane("Boeing", "747")     # 创建一个 Plane 类
for x in (car1, boat1, plane1):
  x.move()

看看最后的 for 循环。由于多态性,我们可以为所有三个类执行相同的方法。

继承类的多态性

那么具有相同名称的子类的类呢?我们能在那里使用多态吗?如果我们使用上面的示例,并创建一个名为 Vehicle 的父类,并将 Car、Boat 和 Plane 作为 Vehicle 的子类,子类将继承 Vehicle 的方法,但可以重写它们:

示例,创建一个名为 Vehicle 的类,使 Car、Boat 和 Plane 成为 Vehicle 的子类:

class Vehicle:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model
  def move(self):
    print("Move!")
class Car(Vehicle):
  pass
class Boat(Vehicle):
  def move(self):
    print("Sail!")
class Plane(Vehicle):
  def move(self):
    print("Fly!")
car1 = Car("Ford", "Mustang") # 创建一个 Car 对象
boat1 = Boat("Ibiza", "Touring 20") # 创建一个 Boat 对象
plane1 = Plane("Boeing", "747") # 创建一个 Plane 对象
for x in (car1, boat1, plane1):
  print(x.brand)
  print(x.model)
  x.move()

到此这篇关于Python 中多态性的示例和类的继承多态性的文章就介绍到这了,更多相关Python多态性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现人脸识别经典算法(一) 特征脸法

    python实现人脸识别经典算法(一) 特征脸法

    这篇文章主要为大家详细介绍了python实现人脸识别经典算法,特征脸法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python调用命令行进度条的方法

    Python调用命令行进度条的方法

    这篇文章主要介绍了Python调用命令行进度条的方法,涉及Python进度条的调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05
  • python实现一个简单的贪吃蛇游戏附代码

    python实现一个简单的贪吃蛇游戏附代码

    这篇文章主要介绍了python实现一个简单的贪吃蛇游戏附代码,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 如何使用python代码操作git代码

    如何使用python代码操作git代码

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。本文通过实例代码给大家介绍如何使用python代码操作git,感兴趣的朋友一起看看吧
    2020-02-02
  • Python内置函数详细解析

    Python内置函数详细解析

    这篇文章主要介绍了Python内置函数详细解析,Python 自带了很多的内置函数,极大地方便了我们的开发,下文小编总结了一些内置函数的相关内容,需要的小伙伴可以参考一下
    2022-05-05
  • Python中OpenCV绑定库的使用方法详解

    Python中OpenCV绑定库的使用方法详解

    OpenCV是一个开源的计算机视觉库,广泛应用于图像处理和计算机视觉领域,本文将详细介绍Python中OpenCV绑定库的使用方法,并提供丰富的示例代码,需要的朋友可以参考下
    2025-05-05
  • PyTorch 中model.eval()推理模式详解

    PyTorch 中model.eval()推理模式详解

    model.eval()将模型切换至评估模式,关闭Dropout并固定BatchNorm行为,确保推理结果稳定准确,测试、验证或部署时必须调用,通常配合torch.no_grad()使用,以提高效率并避免训练时的随机性,本文给大家介绍PyTorch 中model.eval()推理模式,感兴趣的朋友一起看看吧
    2025-07-07
  • Python自动化操控鼠标的零基础完全指南

    Python自动化操控鼠标的零基础完全指南

    在日常的电脑使用中,我们经常会遇到大量重复性的鼠标操作,通过使用 Python 脚本,你可以让电脑自动、精准地移动鼠标、执行点击甚至滚动页面,本篇指南将带你从零开始,系统地学习如何使用 Python 操控你的鼠标,开启桌面自动化的第一步
    2026-04-04
  • Python Pyperclip模块安装和使用详解

    Python Pyperclip模块安装和使用详解

    Pyperclip模块兼容python2和python3,能跨平台使用,这篇文章主要介绍了Pyperclip模块安装和使用详解,需要的朋友可以参考下
    2023-03-03
  • pytorch教程之Tensor的值及操作使用学习

    pytorch教程之Tensor的值及操作使用学习

    这篇文章主要为大家介绍了pytorch教程中关于Tensor的操作使用,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家升职加薪,共同进步
    2021-09-09

最新评论