Flask接口签名sign原理与实例代码浅析
265
2022-08-29
python装饰器保留原有函数名称和属性functools.wraps()
# python装饰器在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,python的functools包中提供了一个叫wraps的decorator来消除这样的副作用。写一个decorator的时候,最好在实现之前加上functools的wrap,它能保留原有的函数的名称和函数属性# 不加wrapsdef my_decorator(f): def wrapper(*args, **kwargs): print("ing") return f(*args, **kwargs) return wrapper@my_decoratordef example(): print("called example function")print(example.__name__,example.__doc__) # wrapper,decorator# 加上wrapsimport functoolsdef my_decorator(f): @functools.wraps(f) #这边加上wraps装饰器 def wrapper(*args, **kwargs): print("ing") return f(*args, **kwargs) return wrapper@my_decoratordef example(): print("called example function")print(example.__name__,example.__doc__) # example,Docstring
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~