在一些静态语言中,大都存在有一个重载的概念。这是在OOP(面对对象编程)中一个必不可少的一个行为。

所谓重载,就是多个相同函数名的函数,根据传入的参数个数,参数类型而执行不同的功能。所以函数重载实质上是为了解决编程中参数可变不统一的问题。

python 中的重载

在python中,具有重载的思想却没有重载的概念。所以有的人说python这门语言并不支持函数重载,有的人说python具有重载功能。实际上python编程中具有重载的目的,却无重载的行为,或者说是python并不需要重载!

python是一门动态语言,不需要声明变量类型,函数中可以接受任何类型的参数也就无法根据参数类型来支持重载,python没有必要去考虑参数的类型问题,这些都可以在函数内部判断处理,并无必要去在写一个函数。python 有多种传参方式,默认参数/可变参数/可变关键字参数可以处理函数参数中参数可变的问题。

python3.4中增加的重载机制

在python3.4中提供有一个转发机制来实现重载:from functools import singledispatch

@singledispatch

def function(obj):

print('%r'%(obj))

@function.register(int)

def function_int(obj):

print('Integer: %d'%(obj))

@function.register(str)

def function_int(obj):

print('String: %s'%(obj))

@function.register(list)

def function_list(obj):

print('List: %r'%(obj))

if __name__ == "__main__":

function(1)

function('hello')

function(range(3))

function(object)

python 为什么没有重载_python是否支持重载相关推荐

  1. php 没有重载,PHP 不支持重载

    (引自:互联网) 问: sb('shabi'); sb('shabi','bisha'); function sb($a) { echo $a; } function sb($a,$b) { echo ...

  2. python get 下载 目录_python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/en ...

  3. python中双向索引_Python 字典支持双向索引。Python 集合也支持双向索引

    Python 字典支持双向索引.Python 集合也支持双向索引 答:错 推的策略适用于用户多而广,需求总量大的产品促销 答:× 中国保险条款中属于一般附加险别的有( ) 答:短量险 钩损险 Next ...

  4. python多核多线程编程_python是否支持多处理器/多核编程?

    What is the difference between multiprocessor programming and multicore programming? preferably show ...

  5. 不属于python数据类型的是_Python不支持的数据类型有( )。

    (2) 完成划线处的代码填空: Dim classname(1 To 8000) As String       '存储原始数据中的班级名称 Dim selectabc(1 To 8000) As S ...

  6. python 函数式编程包_python 函数支持函数式编程的包operator partial

    itemgetter和attrgetter能替代从序列中取出元素或读取对象属性的lambda表达式,会自动构建函数 itemgetter 1,根据元组某个字段给元组列表排序,下例中 itemgette ...

  7. 下列不是python数据类型的是_python不支持的数据类型有

    参考答案如下 小雪买了7瓶酸奶,不支共付款17.5元,喝完全部酸奶退瓶时,知道每个空瓶的价钱比瓶中酸奶的价钱少1.5 革命无非是为了对的权和利进行再分配,数据与劫富济贫或杀富济贫相比,税富济贫更符合现 ...

  8. Python按键精灵自动化_Python基础:了解Python与pycharm

    认识 Python 人生苦短,我用 Python -- Life is short, you need Python 目标 Python 的起源 为什么要用 Python? Python 的特点 Py ...

  9. python中的运算符重载_Python中的操作符重载

    Python部落组织翻译,禁止转载,欢迎转发. BY ALOK THAKUR · FEBRUARY 22, 2016 2016年2月22日 , ALOK THAKUR写 Python支持许多内建的类型 ...

最新文章

  1. WindowsPhone7真机部署和调试程序
  2. 【错误记录】Flutter 报错 ( Android Studio 中 main.dart 左侧不显示设备栏 )
  3. 对 Accordion 组件使用样式
  4. linux 进程代码,怎样从Linux终端管理进程:10个你必须知道的命令
  5. css 文字重叠_html网页文字重叠 字体叠加显示css如何解决
  6. python中socket模块常用吗_python中socket模块详解
  7. CSS实现垂直居中布局
  8. Java基础知识强化68:基本类型包装类之Character概述和Character常见方法
  9. dbutils mysql_使用DBUtils控制mysql事务
  10. 弹出框之对话框和提示框,可共用代码
  11. poj 3040 Allowance (贪心
  12. PRKP-1001与CRS-0215解决方案
  13. AutoCAD Civil 3D-部件-部件编辑器自定义边坡与材质
  14. 华硕笔记本FH5900VQ 如何利用Winflash更新BIOS
  15. Linux设备模型(1)_基本概念
  16. 对话区块方舟Warren:DAO和隐私赛道被低估了 |链捕手
  17. ubuntu vim的 保存退出方法
  18. Mac 关闭 Adobe Creative Cloud
  19. 宽和窄俯卧撑哪个更难_宽距俯卧撑与窄距俯卧撑,练出来的肌肉有什么差距?...
  20. hbase数据库_hbase数据库 修改数据

热门文章

  1. java ordered list_关于并行处理:Java 8的forEachOrdered()和sequence()方法之间的区别?...
  2. 一b变频器说明书参数一览表_电工常见的23个变频器问题整理,附专业解答
  3. openssh无法登录:server responded algorithm negotiation failed”
  4. 微博php-sdk使用教程,腾讯微博api(php-sdk)的使用
  5. nbns协议_网络协议详解1 - NBNS
  6. 符号说明表怎么做_教会你的孩子正确使用标点符号
  7. python判断日期_python如何判断日期的合法性?
  8. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】
  9. linux shell 变量减法_第四章 shell和环境变量
  10. c语言程序解决生活中的问题作文,生活中烦恼的事五年级满分作文