装饰器是什么:闭包加@xxx
装饰器的作用:在不改变原先的函数值跟调用的方式,添加额外的功能
装饰器的代码:
def set_fun(func):
def call_fun(*args,**kwargs):
return func(*args,**kwargs)
return call_fun
@set_fun
def test():
pass
两个小例子
1、计算某函数的执行次数,用户行为分析
![](https://i-blog.csdnimg.cn/blog_migrate/cb25fe2b9696e999051c8bc11b2885b0.png)
2、计算函数执行时间
统计函数执行次数和函数的执行时间,都在没有修改原函数代码逻辑的情况下完成,这也正是装饰器的强大所在。