闭包函数

闭(封闭/关闭)包(包子/把馅(闭包函数内部的变量)和皮(闭包函数内部的函数)包起来)函数返回闭包函数内部的函数

闭包函数:闭包函数把 闭包函数内部的变量 + 闭包函数内部的函数 这两者包裹在一起 然后通过返回值的形式返回出来

闭包函数至少也得符合函数嵌套

1.为函数传参的方式一.使用参数的形式

2.包给函数

装饰器

装饰(新增加了一个额外的功能) 器(工具)——函数

装饰器的本质就是一个函数 给函数增加功能的函数

装饰器:给函数 增加功能的 函数,增加功能时需要注意以下两点:
1.不改变原函数的源代码

2.不改变原函数的调用方式

1.装饰器本身就是函数,只不过它用来装饰,被装饰的函数

2.装饰器装饰函数 不改变被装饰函数源代码

3.装饰器装饰函数 不改变被装饰函数的调用方式

二层装饰器

1.用来装饰函数的,它本质是函数

2.不改变函数源代码

3.不改变函数调用方式

装饰器模板,如果装饰器真的不懂,记住模板

def deco(func):
  def wrapper(*args,**kwargs):
    #要加什么功能就加上去
    res = func(*args,**kwargs)
    
    return res
   return wrapper

迭代器

可迭代对象:含有__iter__方法的就叫做可迭代对象

迭代器:含有__iter__和__next__方法的就是迭代器

生成器:含有yield关键字的函数就叫做生成器