Day12 闭包函数及装饰器
闭包函数
def f1():
def f2():
print("f2函数")
return f2
f2 = f1()
闭包函数:
闭包函数把 闭包函数内部变量 + 闭包函数内部的函数 这两者包裹再一起然后通过返回值形式返回出来
闭包函数至少也得符合函数嵌套
装饰器
装饰器:装饰(新增加了一个额外的功能)
装饰器本质就是一个 给函数增加功能的函数
装饰器:给函数 增加功能的函数 增加功能时需要注意以下两点:
- 不改变原函数源代码
- 不改变原函数调用方式
def decorators(func):
def wrapper(*args,**kwargs):
res = func(*args,**kwargs)
return res
return wrapper
二层装饰器
- 用来装饰函数的,它本质是函数
- 不改变源代码
- 不改变调用方式
装饰器模板
def decorator(func):
def wrapper(*args,**kwargs):
res = func (*args,**kwargs)
return res
return wrapper
@decorator()
迭代器引入
可迭代 对象:含有__iter__ 方法的就叫做可迭代对象
迭代器:含有__iter__ 和__next__方法的就叫做迭代器
生成器:含有yield关键字的函数就叫做生成器