Python是一种动态脚本语言,其设计机制是通过函数名保存函数条目,而不是函数名+参数。
调用函数时,可以传递多个参数,同一个函数只会被调用到名称匹配的函数。
虽然python不支持函数重载,但是类似的功能可以通过传递容器类型(list、tuple、set、dict)的参数来实现。
为了考虑为什么python不提供函数重载,首先我们要检查为什么必须提供函数重载。
函数重载主要是为了解决两个问题。
1、可变参数类型。
2、可变参数个数。
另外,一个基本的设计原则是,只有当两个函数的功能除了参数类型和参数个数完全一样时,才使用函数重载。如果这两个函数的作用实际上是不同的,那么就不应该使用任何重载来代替名称不同的函数。
好的,那么对于案例1,函数做的事情是一样的,只是参数类型不同,python是怎么处理的呢?答案是根本不需要处理,因为python可以接受任何类型的参数。如果函数的作用相同,那么不同的参数类型很可能是python中相同的代码,没必要做两个不同的函数。
那么对于案例2,功能相同,但是参数个数不同,python是如何处理的呢?众所周知,答案是默认参数。将那些缺少的参数设置为默认参数将解决问题。由于你假设函数执行相同的操作,因此毕竟需要那些缺少的参数。
好吧,既然案例1和2都有解决方案,python自然不需要函数重载。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python sys模块有什么用12/20
- ♥ python缺失值解决方案10/07
- ♥ 如何使用 Python 自动登录?01/03
- ♥ python2.7打印中文乱码怎么办?01/13
- ♥ python中如何使用turtle画月饼10/20
- ♥ 如何检查列表是否包含python中的元素09/05
内容反馈