设为首页 加入收藏

TOP

如何理解 Python 装饰器(二)
2018-10-10 04:10:04 】 浏览:288
Tags:如何 理解 Python 装饰
nbsp;   def wapper(*args,**kwargs):
        print ('I am decorate02')
        fun1(*args,**kwargs)
        print('nice to meet you')
    return wapper


@decorate01
@decorate02
def show(*args,**kwargs):
    print (args[0])
    print (args[1])
    print (args[2])


show('Mr Alice','Mr Tim','Mr tu')


# 执行结果:


hello world
I am decorate02
Mr Alice
Mr Tim
Mr tu
nice to meet you
I am decorate01


装饰器功能扩展


#!/usr/local/python27/bin/python2.7


def before(request,*args,**kwargs):
    print('before')


def after(request,*args,**kwargs):
    print('after')


def Filter(before_func,after_func):
    def outer(fun1):
        def wapper(request,*args,**kwargs):


            before_result = before_func(request,*args,**kwargs)
            if(before_result != None):
                return before_result;


            fun1_result = fun1(request,*args,**kwargs)
            if(fun1_result != None):
                return fun1_result;


            after_result = after_func(request,*args,**kwargs)
            if(after_result != None):
                return after_result;


        return wapper
    return outer


@Filter(before,after)
def show(request,*args,**kwargs):
    print ('Mr tu')


   
show('1')


# 执行结果:


before
Mr tu
after


函数若未定义返回值,执行成功返回值默认为 None ,这里的语句 if (before_result != None) 意思就是before函数执行失败时采取什么操作。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇35个高级Python知识点总结 下一篇基本数据结构 -- 链表概述

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目