python装饰器
装饰器的本质:在不改变被装饰对象原有的“调用方式”和“内部代码”的情况下给被装饰对象添加新的功能。
装饰器的作用,就是封装一个函数,然后修改它,也就是在不改变原有功能代码的基础上,添加额外的功能。
在python中所有的东西都是对象,函数可以作为参数进行传递。
代码实现:
# coding:utf-8 __author__ = "xiaomagua" from functools import wraps def login_outer(name="momo", sleep=10): def login(func): @wraps(func) # 不改变使用装饰器原有函数的结构(如__name__, doc) def wraaper(*args, **kwargs): print("%s checking login..." % name) print("sleep %s second..." % sleep) func(*args, **kwargs) return wraaper return login @login_outer("jack") def sayhi(name): print("hi %s, greeting.." % name) sayhi("jack")
参考:
https://cloud.tencent.com/developer/article/1683739
https://segmentfault.com/a/1190000007837927