python

超轻量级php框架startmvc

Python装饰器语法糖

更新时间:2020-06-19 04:24 作者:startmvc
Python装饰器语法糖代码示例####装饰器的固定格式##普通版本deftimer(func):definner(*args,**kwargs):''

Python装饰器语法糖代码示例


####装饰器的固定格式
##普通版本
def timer(func):
 def inner(*args,**kwargs):
 '''执行函数之前要做的'''
 ret = func(*args,**kwargs)
 '''执行函数之后要做的'''
 return ret
 return inner
##wraps版本
from functools import wraps
def deco(func):
 @wraps(func) #加在最内层函数正上方
 def wrapper(*args,**kwargs):
 return func(*args,**kwargs)
 return wrapper
####带参数的装饰器
def outer(flag):
 def timer(func):
 def inner(*args,**kwargs):
 if flag:
 print('''执行函数之前要做的''')
 ret = func(*args,**kwargs)
 if flag:
 print('''执行函数之后要做的''')
 return ret
 return inner
 return timer
@outer(True)
def func():
 return '返回值'
x=func()
print(x)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接