python高级算法 python 高级用法
转载
关于偏函数
- 偏函数是在一个函数的参数很多的情况下,有一些参数在某些场景中是固定不变的,这时就可以写一个新的函数,来指定某个固定的值为不变的参数,从而可以简化写法。
- 偏函数的写法:有一个函数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)即可
关于高阶函数
- 由于函数定义时。系统也会分配一块内存给它,而把唯一标识给函数名,所以,函数名和变量名是一样的本质,函数名也可以作为参数传递到函数体中,所以,当一个函数名作为另一个函数的参数传递到函数体中时,这个函数就是高阶函数
- 排序函数sorted()就是高阶函数,其key参数接收的就是另一个函数,用来说明当数据传入时,按照哪一个关键字来进行排序,如传入的参数是字典
关于返回函数
- 即一个函数的返回值是另一个函数,使用变量名接收后,传入参数即可使用
关于匿名函数
- 匿名函数写法:lambda 参数1,参数2:表达式,匿名函数中的表达式只能写一个,所以只能用在简单的场景中,可以使用变量接收,即func = lambda x, y: x + y,调用时func(x, y)
- 一个应用场景--sorted()函数中key参数的应用:sorted(a, key=lambda x: x["name"]),即不需要另外写一个函数,然后将返回值赋给参数key
关于闭包(重中之重)
- 有函数嵌套;
- 内部函数要使用外部函数的变量(参数);
- 外部函数的返回值时内部函数(返回的只是函数,并不是将函数执行后的值,这是要重点注意的)
- 在内部函数中若想改变引用的外部函数中的变量,必须使用nonlocal 变量的形式,否则,算作时内部函数重新定义的变量;
- 注意闭包执行的顺序
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。