2、带参数的装饰器

2、带参数的装饰器
import time

def timer_out(flag1):   #flag1 = flag
    def timer(f):
        def inner(*args, **kwargs):
            if flag:
                start_time = time.time()
                time.sleep(0.5)
                ret = f(*args, **kwargs)
                end_time = time.time()
                print('执行时间%s' % (end_time - start_time))
                return  ret
            else:
                ret = f(*args, **kwargs)
                return ret
        return inner
    return timer

flag = True
@timer_out(flag)    # 1,步 timer_out(flag) == timer 2,@与timer结合,变成你熟悉的装饰器 @timer
def func1():
    print(111)

@timer_out(flag)
def func2():
    print(222)

@timer_out(flag)
def func3():
    print(333)

func1()
func2()
func3()

 

posted @ 2018-05-15 16:50  龙的传人123  阅读(72)  评论(0)    收藏  举报