老生常谈python中的重载


Posted in Python onNovember 11, 2018

在一些静态语言中,大都存在有一个重载的概念。这是在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 相关文章推荐
从零学Python之入门(五)缩进和选择
May 27 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 Python
python定时关机小脚本
Jun 20 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
利用Python检测URL状态
Jul 31 Python
python 数据提取及拆分的实现代码
Aug 26 Python
python微信公众号开发简单流程实现
Mar 09 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
增大python字体的方法步骤
Jul 05 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
Django跨域请求CSRF的方法示例
Nov 11 #Python
Python rstrip()方法实例详解
Nov 11 #Python
python requests爬取高德地图数据的实例
Nov 10 #Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 #Python
Python中的取模运算方法
Nov 10 #Python
在Python中获取两数相除的商和余数方法
Nov 10 #Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 #Python
You might like
PHP防止跨域提交表单
2013/11/01 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
python书籍信息爬虫实例
2018/03/19 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Python安装whl文件过程图解
2020/02/18 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
简历中自我评价分享
2013/10/09 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
七一党日活动总结
2014/07/08 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
审美与表现自我评价
2015/03/09 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
儿子满月酒致辞
2015/07/29 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
python如何利用cv2模块读取显示保存图片
2021/06/04 Python