老生常谈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之再深点,更懂list
Sep 20 Python
用Python操作字符串之rindex()方法的使用
May 19 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Python Django基础二之URL路由系统
Jul 18 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
python实现拼接图片
Mar 23 Python
Python检测端口IP字符串是否合法
Jun 05 Python
keras的三种模型实现与区别说明
Jul 03 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
解析目标检测之IoU
Jun 26 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php中目录,文件操作详谈
2007/03/19 PHP
php explode函数实例代码
2012/02/27 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
PHP中SESSION过期设置
2021/03/09 PHP
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
深入理解Python中的内置常量
2017/05/20 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
python中的逆序遍历实例
2019/12/25 Python
详解python中各种文件打开模式
2020/01/19 Python
python异常处理try except过程解析
2020/02/03 Python
python初步实现word2vec操作
2020/06/09 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
css3进行截取替代js的substring
2013/09/02 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
董事长岗位职责
2013/11/30 职场文书
大四学生思想汇报
2014/01/13 职场文书
六五普法学习心得体会
2016/01/21 职场文书
Go语言读取txt文档的操作方法
2022/01/22 Golang
以下牛机,你有几个
2022/04/05 无线电