一:普通装饰器
概念:在不改变原函数内部代码的基础上,在函数执行之前和之后自动执行某个功能,为已存在的对象添加某个功能
def 外层函数(参数)
def 内层函数(*args,**kwargs...)
#函数执行之前
data= 参数(*args,**kwags)
#函数执行之后
return data
return 内层函数...)
print('函数调用之前')
data = func(*args,**kwargs) #执行原函数并获取返回值
print('调用原函数之后')...base函数,然后将返回值wrapper返回,变成不带参数的装饰器
用法示例
#写一个带参数的函,实现:参数是多少,被装饰的函数就要执行多少次,返回最后一次执行的结果
def base(counter...)
概念:函数中如果存在yield,那么该函数就是一个生成器函数,调用生成器函数,会返回一个生成器,生成器只有被for循环时,生成器内部代码才会执行,每次循环都会获取yield返回的值
生成器函数 :