美文网首页大数据 爬虫Python AI Sql程序员
Python的多态性并不是动态类型

Python的多态性并不是动态类型

作者: 唐大方 | 来源:发表于2017-03-31 06:30 被阅读0次

什么是多态性?在Python语言中,我能想到的是可以这样定义参数:

def sum(x, y)

它不用指定参数类型,如果换了其他语言,比如JAVA,可能是这样的:

public void sum(int x, int y)

难道这就是所谓的多态性吗?

不!不需要指定类型是动态类型语言的特点。

通常来说,多态性指的是一个函数或方法,能够处理不同类型的输入。

例如,对于add函数(或者是'+'操作符),在整数类中,执行的是整数的加法。在浮点型类中,执行的是浮点型数的加法。在不知道相加对象类型的情况下,多态性让add函数能够正常运行。

再比如,在Python中,对一个列表中的元素进行排序,使用list.sort()函数,这时,sort()也不需要知道列表中元素是整型、浮点型或字符串等。当然,需要注意的是,多态性虽然不关心输入的类型,但并非意味着对任意类型的输入都能够正常运行,因为complex numbers, dict, 和range就无法进行排序,也就是说如果列表中含有复数,即使没有虚数部分,也会报错。

举一个生活中的例子,证明多态性:

定义一个speak()函数,在现实中就相当于喇叭。输入对象可以是人及各种动物。当喇叭(speak()函数)面对小猫的时,发出的是‘‘喵’’,面对小狗的时,发出的是‘‘woof’’……

多态性有什么好处呢?

其实很容易猜到,如果没有多态性,那么speak()函数会有多么臃肿,有多少种不同对象类型的输入,就有多少个speak()函数,而操作确实相同的。

多态性在不同语言都有什么样的表现呢?

在JAVA中,是对接口interface的实现。

在Python中,由于它本身就是动态类型语言,对输入参数类型没有明确,因此也实现了多态性。

相关文章

  • Python的多态性并不是动态类型

    什么是多态性?在Python语言中,我能想到的是可以这样定义参数: def sum(x, y) 它不用指定参数类型...

  • python面试题

    python语言特性 python是静态还是动态类型?是强类型还是弱类型? 动态强类型语言 动态还是静态指的是编译...

  • python类型

    python类型 类型 python为动态强类型语言 动态,变量的类型在声明后可以改变 强类型,偏向于不容忍隐式类...

  • Python 语法(一)

    1、Python 语言特性 1.1 Python 是静态还是动态?强还是弱类型 动态强类型语言 动态还是静态:指...

  • 01 | Python 两大特性和四大基本语法

    一、 Python语言两大特性 Python是一种动态的强类型语言。 1.1 什么是动态语言? 类型检查: 验证类...

  • Python语法

    *** 环境 python解释器: *** 基础 python是动态强类型语言:运行时类型才被确定,类型校验严格,...

  • 速撸《python学习手册》--第6章-动态类型简介

    主要介绍多态以及它提供的多态性。 缺少类型生命语句的情况 在python中,类型是运行过程中自动决定的,而不是通过...

  • 1小时学会Python-深度学习原理与实现的1.4节

    1小时学会Python ( Learning Python in an hour ) Python是一个动态类型的...

  • Python类型标注入门与初探

    本文主要介绍Python中类型标注的作用,以及最常用的类型标注应该怎么写。 由于Python属于动态类型语言,所以...

  • Python动态类型

    Python动态类型 在python中,我们使用变量时,并没有声明变量的存在和类型。类型是在运行过程中自动决定的。...

网友评论

    本文标题:Python的多态性并不是动态类型

    本文链接:https://www.haomeiwen.com/subject/jcemottx.html