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)
  • 相关阅读:
    android 3dmax
    android 源码
    android 获取 图片 缩略图
    android 导入 3d 场景
    TSQL查询进阶理解SQL SERVER中的分区表
    android 画直接2
    sqlServer 加速
    android 动态壁纸
    sqlServer 2000 唯一 索引
    视频网站
  • 原文地址:https://www.cnblogs.com/qinjiting/p/10467820.html
Copyright © 2011-2022 走看看