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中有函数重载吗相关推荐

  1. python中result函数用法_python中函数的参数和返回值

    函数 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 ...

  2. python汽车迷_Python学习—函数

    Python基础-函数 认识函数 为什么要使用函数? 1.避免代码重用,在一个完整的项目中,某些功能会反复使用.那么会将功能封装成函数,当我们要使用功能的时候直接调用函数即可. 2.提高代码的可读性 ...

  3. python format函数换行_python format函数/print 函数详细讲解(19)

    文章首发微信公众号,微信搜索:猿说python 在python开发过程中,print函数和format函数使用场景特别多,下面分别详细讲解两个函数的用法. 一.print函数 print翻译为中文指打 ...

  4. python quit函数作用_Python常用函数学习笔记

    Python函数很多,常用的函数不同的场景侧重不同,学而时习之,不亦乐乎? abs # 求绝对值 Capitilize函数: # 有列表 li = ['aB', 'egon', 'smith', 'p ...

  5. python自定义函数参数_python自定义函数的参数之四种表现形式

    (1)def a(x,y):print x,y 这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错 (2)def a(x,y=3 ...

  6. python中get函数作用_python get函数有什么作用?示例解析

    这篇文章之中我们来了解一下关于python字典之中的pythonget函数的相关知识,get函数是什么意思,他有什么作用都将会在接下来的文章之中得到解答. 描述 Python 字典(Dictionar ...

  7. python中函数定义_Python中函数的定义与使用

    原博文 2020-02-27 16:46 − 一.函数基本定义 定义函数的目的是为了让一段代码可以被重复使用 函数定义的语法: def 函数名([参数,参数.....]): 函数主体代码(多行代码) ...

  8. python迭代函数例题_python map 函数使用,遍历访问可迭代对象

    1. 功能介绍 map 调用函数遍历可迭代对象,返回一个迭代器对象 map(function, iterable, ...) 可以传递多个迭代器对象给 map 的迭代函数,这个函数接收参数的个数必须和 ...

  9. python使用复合语句def创建函数对象_Python 纯函数

    Python 纯函数,函数式编程简洁明了,因为函数可以用作其他函数的参数或者返回值,后续会给出很多这样的例子. 要做到这一点,函数必须是运行时环境中的头等对象.在C等语言中,函数不是运行时中的对象,然 ...

  10. python 自定义函数语句_python 自定义函数

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回,return满足条件就不再执行下面的语句,也 ...

最新文章

  1. 软件开发--深入理解程序的结构
  2. 【网络流24题】解题报告:A、飞行员配对方案问题(最大流求二分图最大匹配)
  3. python之正则(一)
  4. 读取csv文件 java_Java:逐步读取/流式传输CSV文件
  5. hive关于left join 和join时候on条件总结
  6. 大东电报与雷格斯在全球部署宝利通高清系统
  7. 关于auto-keras训练cnn模型
  8. Java集合存放有序不重复的对象
  9. web前端简历个人技能该怎么写?
  10. python编写一个函数把华氏温度转换成摄氏温度_编写一个函数把华氏温度转换成摄氏温度,温度转换公式为:c=(f-32)*5/9。在主函数中输入华氏温度值......
  11. Kaminari的几个对象
  12. Nvidia TX2 串口使用
  13. 倍福控制电机耦合运动
  14. 网页开发的一些尺寸单位
  15. CentOS 7中DHCP的介绍与搭建DHCP中继服务(理论+实践)
  16. 页面布局的几种宽度设置方式—html
  17. PubMed文献影响因子怎么显示保姆教程
  18. GifCam:有手就会的动图录制神器,GIF专用
  19. sklearn OneHot编码
  20. 项目开发经验谈之:设计失败的挫败感

热门文章

  1. CSV用excel打开乱码
  2. instr和substr函数
  3. 为你的.NET/Mono应用程序加入更新支持NetSparkle
  4. 【安全系列】IPSEC ×××之安全基础篇
  5. 数据库设计指南[整理]
  6. iOS开发之App从点击到启动
  7. 如何在苹果Mac上的登录窗口中打开辅助功能?
  8. iClock时间菜单功能设置
  9. TensorFlow机器学习实战指南之第二章
  10. ORACLE数据恢复方法(提交事务也可以)