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

    #coding=utf-8

    def outer(fun):
    def wrapper():
    print ('验证')

    fun()

    print ('验证成功')
    return wrapper

    @outer
    def func1():
    print ('func1')

    @outer
    def func2():
    print ('func2')

    @outer
    def func3():
    print ('func3')

    @outer
    def func4():
    print ('func4')


    def before_func(request,kargs):
    print ('myname is before func,request is %s,kargs is %s'%(request,kargs))

    def main_func(request,kargs):
    print ('myname is main func,request is %s,kargs is %s'%(request,kargs))


    def after_func(request,kargs):
    print ('myname is after func,request is %s,kargs is %s'%(request,kargs))


    #装饰器的层层嵌套
    def fiter(before_func,after_func):
    def outer(main_func):
    def wrapper(request,kargs):
    before_result=before_func(request,kargs)
    if before_result != None:
    return before_result
    main_result=main_func(request,kargs)

    if main_result != None:
    return main_result

    after_result=after_func(request,kargs)
    if after_result != None:
    return after_result
    return wrapper
    return outer


    @fiter(before_func,after_func)
    def test(request,args):
    print ('running...')

    if __name__=="__main__":

    # func1()
    #
    # func2()
    #
    # func3()
    #
    # func4()

    s=test('hello','word')

    print (s)
  • 相关阅读:
    ci框架与smarty的整合
    jQuery 1.3.2 简单实现select二级联动
    Nginx配置https
    tp5.1最新的类库使用规则
    Linux指令大全
    Redis锁机制处理高并发
    Nginx配置https站点
    vue的入门
    HTTP 请求头中的 X-Forwarded-For,X-Real-IP
    Composer包制作以及发布!
  • 原文地址:https://www.cnblogs.com/qinjiting/p/10467820.html
Copyright © 2011-2022 走看看