python返回函数与匿名函数

返回函数 

函数作为结果值返回

# def lazy_sum(*args):
#     def sum():
#         ax = 0
#         for n in args:
#             ax = ax + n
#         return ax
#     return sum
# f1=lazy_sum(1,2,3)
# f2=lazy_sum(4,5,6)
# print(f1())
# print(f2())

 直接调用函数lazy_sum()并不会返回求和结果而是返回求和函数

调用函数f时,才真正计算求和的结果

我们在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”的程序结构拥有极大的威力。

匿名函数

匿名函数lambda x: x * x

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果

原文地址:https://www.cnblogs.com/wbf980728/p/14069701.html