Python笔记2

高阶函数:1.可以使用函数对象作为参数的函数。
2.可以将函数作为返回值的函数。
函数对象:①定义好的函数,使用函数名调用(不加括号)
②将函数作为参数的高阶函数,通过传入不同的函数,可以使执行的结果完全不同结果,如下所示

def add(f,x,y):
 return f(x) + f(y) 
print(add(lambda x:x**2,3,4))
print(add(lambda x:str(x),3,4))
print(add(lambda x:x/2 ,3,4))
③内置高阶函数(map)
map(func,list)   (map生成器对象),将函数作用在list的每一个序列上
# map的实现原理
def my_map(f,lis):
 new_list = []
 for i in lis:
  new_list.append(f(i))
 return new_list
print(my_map(lambda x:x**0.5,range(1,10)))

装饰器函数:1.修改增加其他函数的功能的函数
特点:不修改原函数的代码
一个装饰器函数可以给多(n)个函数添加或修改相同的功能

2.装饰器函数的实现方法:装饰器函数是一个高阶函数,是一个嵌套函数,它把原函数作为参数,将内部函数作为返回值。
3.将原函数替换为内部函数。原函数在内部函数中执行保留原函数的功能。
4.有参装饰器(给无参装饰器上再加一层函数用于接收参数。)


如下案列:给一个函数增加开头加入“开始执行...”和结尾加入“结束执行...
def log_info(function):
 def run(*args,**kwargs):
  print("开始执行...")
  res = function(*args,**kwargs)
  print("执行结束....")
  return res 
 return run 

@log_info  # 装饰器语法糖 
def func1(n):
 for i in range(0,n,2):
  print(i,end=" ")
 print()
 return "Ok"
 
print(func1)
# log_info(func1)(20)   运用装饰器函数第二种语法写法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值