python中的高阶函数

一. 函数

1. 变量可以指向函数

在python中函数名实质上是指向函数体的内容的;因此函数名可以赋值给其他变量;函数实质上是一个变量,函数名其实就是指向函数的变量


2. 高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数


3. 内置高阶函数

1>map函数

map() 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回


2>reduce函数

reduce() 函数接收两个参数,一个是函数,一个是序列,reduce 把结果继续和序列的下一个元素做累积计算


3>filter函数

filter() 函数接收两个参数,一个是函数,一个是序列,和 map() 不同的时,filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True还是 False 决定保留还是丢弃该元素


4>sorted函数


4. 匿名函数

关键字 lambda 表示匿名函数,冒号前面的值表示函数参数,冒号后面跟函数返回值,不需要写return


eg1:下厨房

输入:第i个料理需要i中材料,各个材料用空格隔开

输出:输出一行一个数字表示完成所有料理需要多少种不同材料


eg2:阶乘


eg3:找朋友

输入:N M (N表示读者数量,以N行表示;M表示书本编号)

输出:每行一个数表示有潜在朋友数量,如果没有则为“beiju”


eg4:对索引值求和,按照key值升序输出

输入:先输入键值对的个数,然后输入成对的index和value值,以空格隔开

输出:输出合并后的键值对(多行)

二. 装饰器

1. 闭包(closure)


注:每次调用闭包时,都将返回一个新的函数

2. 装饰器

1>器可理解为函数,装饰器实质上是用来装饰函数的

2>装饰器就是在原来功能基础上加上一些其他功能,即在程序执行前或执行后加上需要的操作

3>装饰器的功能:权限的验证;日志记录;函数运行时间统计;执行函数前预备处理;执行函数后清理功能等


2.1 装饰器应用之函数计时器


注:使用装饰器可以批量化处理,且操作范围小,工作量低

2.2 被装饰的函数有参数

参数(必选参数,默认参数,可变参数,关键字参数);其中可变参数通用性较强,建议尽可能使用可变参数

注:fun.__name__可以打印函数名

2.3 装饰器带参数(在代码运行期间动态增加功能的方式


2.4 装饰器案例之引入日志


注:装饰器中return wrapper后带括号与不带括号的区别在于:带括号表示返回函数值,调用函数时不需要带括号,带参数的除外;不带括号为函数,调用时需要带括号


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值