Python基础-装饰器

装饰器
装饰器本质上是一个函数,该函数用来处理其他函数,他可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器返回值
也是一个函数对象,它经常用于有切面环境的场景,比如插入日志、性能测试、事务处理、缓存、权限校验等应用场景
装饰器就是为已存在的对象添加额外的功能。
简单装饰器
import time
def show_time(f):
    def inner():
            start = time.time()
            f()
            end = time.time()
            print('spend %s' % (end - start))
    return inner

@show_time
def fansik():
    for i in range(1000):
        print('fansik %d' % i)
    time.sleep(3)
fansik()

带参数的装饰器

import time
def logger(flag=''):
    def show_time(f):
        def inner():
            start = time.time()
            f()
            end = time.time()
            print('spend %s' % (end - start))
            if flag == 'true':
                print('记录日志')
        return inner
    return show_time

@logger('true')
def fansik():
    print('exec fansik function')
    time.sleep(3)
fansik()

 

posted @ 2017-10-16 11:27  fansik  阅读(155)  评论(0编辑  收藏  举报