一、返回函数:即函数作为返回值
有时调用函数不需要立即得到函数的运行结果,而是根据程序流程再进行计算,这时候适合用返回函数,例如:
f = return_func(1,3,5,7,9)并没有立即得到结果,调用f()才得到结果。每次调用返回函数return_func()都会返回一个新的函数,即使传入的参数相同,得到的函数之间也没有相互影响。
有一种情况需要注意:返回函数尽量不要使用循环变量或者后续会发生变化的变量
三个函数返回全部都是9,原因就在于返回的函数引用了变量i,但它并非立刻执行。等到3个函数都返回时,它们所引用的变量i已经变成了3,因此最终结果为9。
可以使用下列方法在返回函数中使用循环变量:方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:
二、匿名函数:lambda函数
匿名函数只能有一个表达式,不需要写return,表达式的值就是返回值
三、偏函数
Python 的functools库提供了偏函数Partial Function,不是数学概念的偏函数。Python中偏函数的作用是将传入函数f1的某些参数的值进行固定/初始化,然后返回一个新函数f2,调用f2时不需要传入已经固定/初始化的参数值,只需传入未固定的参数值,即可得到与直接调用f1相同的的结果。
网友评论