python深入之函数的高级用法

关于偏函数

(1)偏函数是在一个函数的参数很多的情况下,有一些参数在某些场景中是固定不变的,这时就可以写一个新的函数,来指定某个固定的值为不变的参数,从而可以简化写法。

(2)偏函数的写法:有一个函数func(a,b,c,d),其中d在某些场景中固定为2,则偏函数方式一,可以写一个func1(a,b,c,d=2),以后调用时只需写func1(a,b,c)即可;方式二,使用函数,import functools;func1 = functools.partial(func, d=2),调用时只需要使用func1(a,b,c)即可

关于高阶函数

(1)由于函数定义时。系统也会分配一块内存给它,而把唯一标识给函数名,所以,函数名和变量名是一样的本质,函数名也可以作为参数传递到函数体中,所以,当一个函数名作为另一个函数的参数传递到函数体中时,这个函数就是高阶函数

(2)排序函数sorted()就是高阶函数,其key参数接收的就是另一个函数,用来说明当数据传入时,按照哪一个关键字来进行排序,如传入的参数是字典

关于返回函数

即一个函数的返回值是另一个函数,使用变量名接收后,传入参数即可使用

关于匿名函数

(1)匿名函数写法:lambda 参数1,参数2:表达式,匿名函数中的表达式只能写一个,所以只能用在简单的场景中,可以使用变量接收,即func = lambda x, y: x + y,调用时func(x, y)

(2)一个应用场景--sorted()函数中key参数的应用:sorted(a, key=lambda x: x["name"]),即不需要另外写一个函数,然后将返回值赋给参数key

扫描二维码关注公众号,回复: 2349596 查看本文章

关于闭包(重中之重)

(1)闭包的形式:1.有函数嵌套;2.内部函数要使用外部函数的变量(参数);3.外部函数的返回值时内部函数(返回的只是函数,并不是将函数执行后的值,这是要重点注意的)

(2)闭包注意事项:1.在内部函数中若想改变引用的外部函数中的变量,必须使用nonlocal 变量的形式,否则,算作时内部函数重新定义的变量;2.注意闭包执行的顺序

 

猜你喜欢

转载自blog.csdn.net/zx870121209/article/details/81158751