首页 > 代码库 > 装饰器 装饰带参数的函数和添加函数
装饰器 装饰带参数的函数和添加函数
修饰带参数函数
1.带参数函数func1
def func1(arg): print arg
2.装饰器
def outer(fun): def wrapper(arg): print ‘test‘ fun(arg) return wrapper
装饰器outer时期返回函数wrapper,由于要func1 带有参数,如需要将wrapper的函数带上参数,func1被装饰后重新定义为:
func1(arg)=wrapper(arg)= { print ‘test‘ func1(arg) }
在修饰器中使用函数修饰
要添加的额外函数有
def before(): print ‘before‘ def after(): print ‘after‘
主体函数:
def main(): print ‘main‘
装饰器:
def filter(before_func,after_func): #要在主体函数前 和 函数后再执行的函数名 def outer(main_func): def wrapper(): before_result=before_func() #如果前函数不为None,则执行 if(before_result!=None): return before_result main_result=main_func() #执行主体函数 if(main_result!=None): return main_result after_result=after_func() #如果后函数不为None,则执行 if(after_result!=None): return after_result return wrapper return outer
执行结果,打印出:
before
main
after
装饰器 装饰带参数的函数和添加函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。