Python学习16--装饰器3(装饰器含参数)

 目的:增加装饰器可以接收的参数

import time
def log(flag = ""):
    def show_time(func):
        def wrapper(*x):
            start_time = time.time()
            func(*x)
            end_time = time.time()
            print('spend %s' % (end_time - start_time))
            nonlocal flag
            if flag == "true":
                print("打印")
        return wrapper
    return show_time
@log(flag="true") #相当于@show_time
def foo(*a):
    sums = 0
    for i in a:
        sums += i
    print(sums)
    time.sleep(3)

#foo = show_time(foo)
foo(1,2,3,4,5,6,7)

猜你喜欢

转载自blog.csdn.net/qq_33661910/article/details/81260065