Discuss / Python / 练习1

练习1

Topic source

ZJahon

#1 Created at ... [Delete] [Delete and Lock User]
import time,functools
def metric(fn):
    @functools.wraps(fn)
    def wrapper(*args,**kw):
        start=time.time()
        program=fn(*args,**kw)
        end=time.time()
        print("%s executed in %s ms"%(fn.__name__,end-start))
        return program
    return wrapper
其实有点不清楚,*args和**kw的作用是什么。加*,我知道是元组,加**,我也知道是字典。合在一起如上代码,我就暂时把他视为了接受全部或输出全部了。
恳请理解的人赐教!

个人理解,分两种情况来说,1定义函数时,args表示接收任意数量位置实参并将这些实参存放到元组中,**kw表示接收任意数量关键字实参并将他们存放在字典中,2调用函数时,args表示拆元组,拆成一个一个位置实参,依次给对应位置形参赋值,**kw表示拆字典,给对应关键字形参赋值,目前是这样理解,有错望纠正


  • 1

Reply