python中多态的作用是什么?

liftword5个月前 (01-12)技术文章35

在强类型语言(例如Java或C#)中,多态是指允许使用一个父类类型的变量或常量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。即使用父类的类型来调用子类的方法。

在Python中,多态指在不考虑对象类型的情况下使用对象。相比于强类型,Python更推崇“鸭子类型”。“鸭子类型”是这样推断的:如果一只生物走起路来像鸭子,游泳起来像鸭子,叫起来也像鸭子,那么它就可以当做鸭子。也就是说,它不关注对象的类型,而是关注对象具有的行为。

例12-7 多态.py

# 定义一个表示动物的类
class Animal(object):
    def shout(self): # 叫的方法
        print("--Animal--shout--")
# 定义一个表示狗的类,继承自动物类
class Dog(Animal):
    def shout(self): # 重写父类的方法
        print("--汪汪--")
# 定义一个表示猫的类,继承自动物类
class Cat(Animal):
    def shout(self): # 重写父类的方法
       print("--喵喵--")
# 定义一个函数
def func(temp):
   temp.shout()
dog = Dog()
func(dog)
cat = Cat()
func(cat)

在例12-7中,首先定义了Animal(动物)类,该类中有个shout方法,其次定义了继承自Animal的两个子类Dog(狗)和Cat(猫),分别在两个类中重写了shout方法,然后定义了一个带参数的函数func,在该函数中调用了shout方法,最后分别创建了Dog类的对象dog和Cat类的对象cat,并作为参数调用了func函数。

程序运行的结果如图12-12所示。

值得一提的是,func函数中没有规定参数temp类型,它可以接收任意类型的对象,但是传入的这些对象中必须有shout方法。

相关文章

让我们来看看Python测试在实际工作中的常见用途。

Python测试:独揽多种任务,工作必备利器!Python作为一种多功能的编程语言,不仅在软件开发中有着广泛的应用,同时也在测试工作中展现出了强大的能力。让我们来看看Python测试在实际工作中的常见...

「Python」初学入门,Python到底能干什么?

有朋友问我:“学Python能干什么?”其实这个问题不太好回答,因为Python用途数不胜数。GoogleEarth、NASA数据分析计算、YouTube网站、Facebook、Instagram、R...

新手可直接使用的python最强大的功能之一:列表

大家好,我是刘会计~今天我们要学习的内容是列表,列表是新手可直接使用的最强大的python功能之一,本文将为大家介绍以下内容:什么是列表、从列表提取单个元素、从列表提取多个元素、给列表增加/删除元素。...

python 代码中 __main__ 有什么用途?

使用python编写自己的程序时,都会用到 __init__.py 和 __main__ 这两个代码模块,有关 __init__ 的相关内容可以阅读文章《python 代码中 __init__ 是什么...

Python 中下划线的 6 个作用

初学者看到 Python 中的下划线 _ 时可能会有些懵圈,不知道这个到底是干什么用的,今天就来盘点一下 Python 中的下划线有哪些用处。以后看到下划线时就可以对号入座了。1、用在 Python...

10个你没有充分利用的令人惊叹的 Python 特性

Python 的简单性和多功能性使其成为全球开发人员的最爱。每天有超过 1000 万开发者使用 Python 进行从网络开发、机器学习到网络脚本等各种开发,Python 的功能非常强大。然而,我们中的...