python支持函数重载吗,python的重载是如何实现的
Python是一种动态脚本语言,设计的机制是按函数名保存函数条目,而不是函数名参数。
当你调用一个函数的时候,你可以传递更多的参数,同样会调用名字只匹配的函数。
python虽然不支持函数重载,但是通过传递容器类型(list、tuple、set、dict)的参数,可以实现类似的功能。
相关:《Python平台》
为了考虑python为什么不提供函数重载,我们首先要研究为什么需要提供函数重载。
函数重载主要是解决两个问题。
1.可变参数类型。
2.可变参数的数量。
此外,一个基本的设计原则是,只有当两个函数的功能除了参数的类型和数量不同之外都相同时,才使用函数重载。如果两个函数的功能实际上是不同的,那么应该使用不同名称的函数,而不是重载。
对于第一种情况,函数是一样的,但是参数类型不同。python是怎么处理的?答案是根本不需要处理,因为python可以接受任何类型的参数。如果函数相同,那么不同的参数类型在python中很可能是同一个代码,不需要做两个不同的函数。
所以对于第二种情况,函数是相同的,但是参数的数量不同。python是怎么处理的?如你所知,答案是默认参数。将那些缺失的参数设置为默认参数可以解决这个问题。因为您假设这些函数具有相同的功能,所以最终会需要那些缺少的参数。
好吧,既然情况1和情况2都有解,python自然不需要函数重载。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。