本帖最后由 筑梦NARUTO 于 2019-5-17 11:36 编辑
函数作为参数传入函数
在python中函数是能作为参数输入函数的。这个有点类似于C#中的委托,将一个函数封装到一个委托对象里,再将这个委托对象传入函数进行调用。这里写一个简单的C#案例,大概理解“委托”的概念就行。
下面我们来看看python如何实现上面的效果。
这里我们可以看到调用Test(list,func)函数时候,我们将一个函数传入了Test函数的第二个参数,第二个参数func直接在函数内调用了。就和C#中的“委托”调用一样。
利用委托写代码可以将代码封装的更好,不用频繁修改函数内部的代码。让代码更加的灵活。我们再看应用之前我们先看看匿名方法lambda表达式。
lambda表达式
有时候我们在定义一次性函数的时候(只调用一次的函数),我们就可以采用匿名函数来处理。我们将上面的C#代码进行简化,效果如下(不能理解也没事,看看就行)
我们再将上面的python代码进行简化。我们用lambda关键字声明了一个参数为num的匿名函数,并将这个函数赋值给了F变量名。
我们直接在调用Test函数的时候定义lambda表达式,这样看起来更像C#的lambda表达式。
综合应用综 合应用 函数有个很重要的概念就是对代码的封装,减少代码的重复使用。
这里我举个简单的例子:比如我们要写一个函数把列表中的偶数项选择出来,写另一个函数把列表中小于某个值的项选取出来。
求列表中的偶数项
求列表中小于某个值的项
然后我们利用上面学习的“委托”和lambda表达式将上面的代码合并成一个,这样我们只需要调用的时候更改输入的条件就行了,Test函数内的代码是不需要改动的。
最后再讲一下利用列表解析将函数进行简化,关于列表解析可以百度一下,或者看看大水牛公众号以前的一篇教程。
|