|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import time
- def cac(func):
- def inner(*args, **kwargs):
- time1 = time.time()
- print(
- f'args:{args}'
-
- # f'*args:{*args}'
-
- f' kwargs:{kwargs}'
- # f'**kwargs:{**kwargs}'
- )
- func(*args, **kwargs)
- time2 = time.time()
- print(time2 - time1)
- return inner
- @cac
- def a(key, value, c=1, b=2):
- pass
- a(1, 2)
复制代码
kwargs的输出结果,为什么是空的字典呢?
- args:(1, 2) kwargs:{}
- 2.2649765014648438e-05
复制代码
本帖最后由 suchocolate 于 2020-10-24 13:13 编辑
你没传,要这样:
另外建议定义a的时候也改成变长参数,保持一致性,还能避免传多了其他参数: - import time
- def cac(func):
- def inner(*args, **kwargs):
- time1 = time.time()
- print(f'args:{args}', f'kwargs:{kwargs}')
- func(*args, **kwargs)
- time2 = time.time()
- print(time2 - time1)
- return inner
- @cac
- def a(*args, **kwargs):
- pass
- a(1, 2, c=8, b=9, d=10)
复制代码
|
|