python中多态的作用是什么?

liftword4个月前 (01-12)技术文章26

在强类型语言(例如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测试在实际工作中的常见...

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

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

Python函数的应用

10、函数10.1 函数定义函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段函数形式:def函数名():代码段10.2 参数□无参数-调用函数时,不需要给参数传值例子:def num(...