闭包函数及装饰器

Day12 闭包函数及装饰器

闭包函数

def f1():

​ def f2():

​ print("f2函数")

​ return f2

f2 = f1()

闭包函数:

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

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

装饰器

装饰器:装饰(新增加了一个额外的功能)

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

装饰器:给函数 增加功能的函数 增加功能时需要注意以下两点:

  1. 不改变原函数源代码
  2. 不改变原函数调用方式
def decorators(func):

​       def wrapper(*args,**kwargs):

​        res = func(*args,**kwargs)

​        return res 

return wrapper

二层装饰器

  1. 用来装饰函数的,它本质是函数
  2. 不改变源代码
  3. 不改变调用方式

装饰器模板

def decorator(func):
    def wrapper(*args,**kwargs):
        res = func (*args,**kwargs)
        return res
    return wrapper
@decorator()

迭代器引入

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

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

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

你可能感兴趣的:(闭包函数及装饰器)