浪了几天又要开始学习啦,今天新公司上班第一天,自己学的是装饰器框架,不需要经常写装饰器,只要写函数即可。

以下是程序说明:

需求:有个搜索功能模块, 希望在允许他允许前进行登录验证,运行出错了会捕捉错误,搜索功能开发以及完成。

实现,创建装饰器,但是需要创建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')