我想要使用装饰器统计函数运行时间时发生报错ValueError: myDecisionTree() requires a code object with 0 free vars, not 1
请问该如何解决呀
以下回答参考GPT并且由Bony-整理:
该报错通常是由于装饰器函数定义时没有加上 *args
和 **kwargs
参数导致的。为了避免出现这个问题,可以在定义装饰器时使用 *args
和 **kwargs
参数,示例如下:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 运行时间为 {end_time - start_time} 秒")
return result
return wrapper
@timer
def myDecisionTree():
# your code here
这样,在调用 myDecisionTree()
时就会自动调用 timer
装饰器,计算函数运行时间,并输出运行时间信息。