zoukankan      html  css  js  c++  java
  • python复杂装饰器

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

    以下是程序说明:

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

    实现,创建装饰器,但是需要创建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')
  • 相关阅读:
    数据库连接池技术
    选择存储引擎的基本原则
    建索引原则
    数据库应用优化
    PDO
    关于cookie和session
    php常见漏洞及分析
    随便写
    spring 注入
    idea导入eclipse项目
  • 原文地址:https://www.cnblogs.com/huayng/p/9545544.html
Copyright © 2011-2022 走看看