python函数的嵌套 和 python不需要重载的原因

python函数的嵌套 和 python不需要重载的原因

函数的嵌套-递包

python中循环可以嵌套,当然方法也是可以嵌套的啦~

#函数的嵌套 递包
#如果我们需要在函数里面需要嵌套函数,最里面的函数是执行功能的代码,那么我们如果需要返回这个函数时只要返回这个函数名即可
例如1:
def fun1(a):
    def fun2(b):
        def fun3(c):
            return a+b+c
        return fun3
    return fun2
sum = fun1(2)(1)(1)

#调用函数
if __name__ == "__main__":
    print(sum)
#输出:4

#如果我们直接调用,比如:fun1(1)时,返回:<function fun1.<locals>.fun2 at 0x0000018603BE5598>
表示fun1()中还有fun2()

fun1() 相当于 fun2
fun2() 相当于 fun3




例如2:
# def fun1(a):
#     def fun2():
#         def fun3():
#             return a
#         return fun3
#     return fun2
# sum1 = fun1(2)()()
# print(sum1)

返回:<function fun1.<locals>.fun2 at 

方法的重载:

 

    java中,在同一个类中,我们将名字相同,参数列表不同的两个(或多个)方法

    称为重载方法。

    参数列表的不同体现在以下两点:

    1 参数的类型不同

    2 参数的个数不同

    方法参数列表的不同,是编译器用来区分调用哪一个

    重载方法的依据。

python不需要重载的原因

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

  1.可变参数类型

  2.可变参数个数

       并且函数重载一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。那么对于情况1,函数功能相同,但是参数类型不同,对于这种情况python根本不需要进行处理,因为Python可以函数可以接受任意类型的参数,所以如果函数功能相同,只是不同的参数类型在python中没有什么不同,所以没有必要做成两个函数就没有必要使用函数的重载。

  对于情况2,如果是函数拥有同样的功能只是参数个数不同,这种情况对于Python同样不需要函数的重载,因为Python中存在缺省参数,对于个数不确定的函数采用缺省参数的方法就能完成所有的工作。

  函数重载为了解决的两个问题在Python中都不是问题因此Python就没有再进行函数重载的必要了,所以Python中不存在函数的重载

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值