Discuss / Python / 根据自己理解加的注释,哪里错了请留言

根据自己理解加的注释,哪里错了请留言

Topic source

o0stanley0o

#1 Created at ... [Delete] [Delete and Lock User]

def metric(fn):

    start_time = time.time()    #记录起始时间

    @functools.wraps(fn)    #将原始函数(fn)的__name__复制到wraps

    def wrapper(*args, **kw):   #定义装饰器(其中参数可为任意值)

        result = fn(*args, **kw)    #将参数代入原始函数并赋值给result

        end_time = time.time()  #此时已运行了原始函数(fn),可以记录结束时间了

        print('%s() executed in %s ms' % (fn.__name__, end_time - start_time))    #这是装饰器的主体功能:“打印时间差”

        return result   #这是装饰器的返回值,返回result(就是原始函数的结果)

    return wrapper  #只是metric函数的返回,就是调用了装饰器函数

o0stanley0o

#2 Created at ... [Delete] [Delete and Lock User]

def metric(fn):  #这个才是定义装饰函数

def wrapper(*args, **kw):   #这个是定义装饰器函数内部的一个封装函数


  • 1

Reply