我正在尝试创建一个计时器包装器,该包装器返回函数运行所需的时间。
from datetime import datetime as dt
import time
def timer_wrapper(func):
"""
Timer wrapper parent
"""
def wrapper(*args, **kwargs):
"""
Timer wrapper child
"""
start = dt.now()
func(*args, **kwargs)
end = dt.now()
duration = (end - start)
print(f"{func.__name__} took {duration}")
return wrapper()
@timer_wrapper
def time_waster():
"""
Time waster
"""
for n in range(3):
print("wasting time")
time.sleep(1)
我对此有2个问题。
jupyter笔记本中的第二个函数(time_waster)每当我将装饰器放在上面时都执行,并按预期运行。但是,我只想用装饰器定义函数,而不要在其中执行。
当我在另一个单元格中调用time_waster()时,它将返回TypeError: 'NoneType' object is not callable
我在做什么错了?
谢谢!