为什么 Python 不支持函数重载?
2017-09-12 16:42
239 查看
为了考虑为什么 python 不提供函数重载,首先我们要研究为什么需要提供函数重载。
函数重载主要是为了解决两个问题。
1。可变参数类型。
2。可变参数个数。
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。
好吧,那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。
那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。
鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。
函数重载主要是为了解决两个问题。
1。可变参数类型。
2。可变参数个数。
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。
好吧,那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。
那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。
鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。
相关文章推荐
- 为什么 Python 不支持函数重载?
- 为什么C++支持函数重载
- python为什么不支持自增操作符
- C编程笔录(一)1.3: 为什么C不支持函数重载,而C++支持?
- Python3为什么不集成mysql支持,而要用第三方的库
- [转]ActionScript为什么不支持函数重载
- Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
- 为什么在Python里推荐使用多进程而不是多线程?
- 为什么c++支持重载而C语言不支持重载
- 为什么X86汇编中的mov指令不支持内存到内存的寻址?
- 零基础学python-18.7 为什么要使用lambda表达式
- Python = "我为什么开始学Python"
- 为什么要学python
- python 字典支持交集和并集操作
- Java为什么支持反射机制?
- centos7下编译安装vim8,并支持python3
- python的异常处理及支持中文注释
- Python编程:查看python环境支持的whl
- 零基础学python-19.4 为什么要在意列表解析与序列映射函数map
- win10 下安装 MongoDB 数据库支持模块(python)