我们常常看见python中某函数上加着类似于@func ,这就是python中的装饰器
装饰器本质就是使得被装饰函数变为自定义的inner函数,这样我们就可以在该函数上添加功能,顾名思义装饰器,原有函数功能不变的基础上添加功能
'''装饰器本质就是使得被装饰函数变为inner函数 类似于fun=wraper(fun)'''
def wraper(fn):
def inner(*args, **kwargs):
print('执行之前你需要添加的装饰操作')
ret=fn(*args, **kwargs)
print('之后操作')
return ret
return inner
def add_func(*argss, **kwargs):
def wraper(fn):
def inner(*args, **kwargs):
print('执行函数前我获取装饰器传过来的参数为',end='')
for arg in argss:
print(arg,end=' ')
print()
ret=fn(*args, **kwargs)
print('执行目标函数后操作!')
return ret
return inner
return wraper
@add_func('haha','40')
@wraper #就是使得被装饰函数变为inner函数 类似于fun=wraper(fun)
def fun():
print('this is fun')
return 'this is fun'
if __name__ == '__main__':
fun()