python中有函数重载吗


Posted in Python onMay 28, 2020

python中没有函数重载

为了考虑为什么python不提供函数重载,首先我们要研究为什么需要提供函数重载。

函数重载主要是为了解决两个问题:

可变参数类型。

可变参数个数。

另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。

那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?

答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。

那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?

答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。好了,鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。

知识点补充:

假设你有一个函数connect,它有一个参数address,这个参数可能是一个字符串,也可能是一个元组。例如:

connect('123.45.32.18:8080')
connect(('123.45.32.18', 8080))

你想在代码里面兼容这两种写法,于是你可能会这样写代码:

def connect(address):
 if isinstance(address, str):
 ip, port = address.split(':')
 elif isinstance(address, tuple):
 ip, port = address
 else:
 print('地址格式不正确')

到此这篇关于python中有函数重载吗的文章就介绍到这了,更多相关python函数重载详解内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python神器对付12306变态验证码
Jan 05 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
python实现图片筛选程序
Oct 24 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
对Matlab中共轭、转置和共轭装置的区别说明
May 11 Python
Python应用实现双指数函数及拟合代码实例
Jun 19 Python
python输出结果刷新及进度条的实现操作
Jul 13 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
python利用后缀表达式实现计算器功能
Feb 22 Python
Python可以实现栈的结构吗
May 27 #Python
Python如何脚本过滤文件中的注释
May 27 #Python
Python如何获取文件指定行的内容
May 27 #Python
Python web如何在IIS发布应用过程解析
May 27 #Python
利用Python实现某OA系统的自动定位功能
May 27 #Python
Python中常见的数制转换有哪些
May 27 #Python
Python如何实现邮件功能
May 27 #Python
You might like
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
python抓取百度首页的方法
2015/05/19 Python
Python中文字符串截取问题
2015/06/15 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
Golang与python线程详解及简单实例
2017/04/27 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
python怎么对数字进行过滤
2020/07/05 Python
Python如何测试stdout输出
2020/08/10 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
旷课检讨书1000字
2014/02/14 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python