python带参数的装饰器,小程序

下面的python小程序,给出了一个带参数的装饰器的应用

import time    
def logger(flag):    
    def show_time(f):
        def inner(x,y):
            start = time.time()
            f(x,y)
            end = time.time()
            print(end - start)
            if flag:
                with open('log.txt','a') as file1:
                    file1.write("The run time of the last programme is %s\n" %end)
                    print("logger is running....")
                    
        return inner
    return show_time

@logger(True)
def Add(x,y):
    print(x + y)

Add(1,2)
Add(8,9)

运行结果如下:
3
8.70227813721e-05
logger is running....
17
3.60012054443e-05
logger is running....

猜你喜欢

转载自www.cnblogs.com/iceberg710815/p/11933195.html