高阶函数

发布时间 2023-03-22 21:17:22作者: 笨鸟晚飞le

 

闭包:

def func(n1):
  var = 123
  def inner():
      print(var,n1)
  return inner

res = func(6) #<function func.<locals>.inner at 0x000001FBE04AEC20>
res() #123 6

闭包通过函数嵌套的机制,先将数据封装到作用域(包),后续在执行内部函数时,再去获取之前封装的值即可

闭包保证数据的安全 同时函数不会死亡 函数里面的数据属于局部变量,外部无法使用

 

线程池:

from concurrent.futures import ThreadPoolExecutor
# 线程池中最多创建5个线程
pool = ThreadPoolExecutor(5)

 

装饰器:

固定格式:

def outer(func): def inner(*args):

#代码运行前加功能

data = func(*args)

#代码运行后加功能

return data return inner

优势:不修改原函数的基础上,进行功能扩展

装饰器本质上就是利用:1.嵌套+闭包 2。@xx语法