1. 程式人生 > >Python學習16--裝飾器3(裝飾器含引數)

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)