浪了几天又要开始学习啦,今天新公司上班第一天,自己学的是装饰器框架,不需要经常写装饰器,只要写函数即可。
以下是程序说明:
需求:有个搜索功能模块, 希望在允许他允许前进行登录验证,运行出错了会捕捉错误,搜索功能开发以及完成。
实现,创建装饰器,但是需要创建2个装饰器一个运行前一个运行后。现在使用一种稍复杂的装饰器实现,只要写一个,以后有其他任何功能,只需要修改装饰器函数,不需要修改装饰器。
以下程序先运行w1(login,errfetch)部分,返回func函数,即@w1(login,errfetch)等于@func(serch),在调用serch('yellow','asdf'),即向inner函数传入了yellow,asdf两个参数,后面就不解释啦~
def login(name,passwd): print('验证通过!') def errfetch(err): print('there is an error') def w1(login,errfatch): def func(main): def inner(request,passwd): login_ret=login(request,passwd) if login_ret!='None': return login_ret main_rst=main(request,passwd) if main_rst!='None': return main_rst errfatch_rst=errfetch(request) if errfatch_rst!='None': return errfatch_rst return inner; return func;
@w1(login,errfetch)
def search(name,pas): print('welcome to my home,%s!'%name)
search('yellow','asdf')