首页 > 编程语言 > 详细

python装饰器的使用

时间:2018-06-21 21:31:16      阅读:187      评论:0      收藏:0      [点我收藏+]

借用装饰器,我们可以批量的对老的函数进行改造或扩展老函数功能,比如需要对函数的接收参数进行过滤,Flash的url路由功能就是使用的这个方式

def dropoushu():  # 这一层函数可以去掉,如果去掉了,则使用@checkjiou这种方式调用该装饰器
    def checkjiou(func):
        def wrapper(*args):
            tmp_list = args[0]
            result_list = [i for i in tmp_list if i%2 ==0]  # 对calculate函数的入参list中的奇数过滤掉
            return func(*tuple([result_list]))  # result_list=[0, 2, 4, 6]
        return wrapper
    return checkjiou

@dropoushu()
def calculate(a_list):
    print a_list  # [0, 2, 4, 6]

if __name__ == "__main__":
    calculate([i for i in range(7)])  # 此处的数据应该是[0, 1, 2, 3, 4, 5, 6]

 

python装饰器的使用

原文:https://www.cnblogs.com/gangdou/p/9210911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!