编写一个名为 log 的装饰器,它接受一个字符串参数 prefix,用于指定日志前缀。装饰器应该在函数执行前后打印日志信息。
要求:
log 装饰器应该接受一个字符串参数 prefix。
被装饰的函数执行前,装饰器应该打印 “{prefix} - Start: {func_name}”。
被装饰的函数执行后,装饰器应该打印 “{prefix} - End: {func_name}”。
代码如下:
import time
import functools
def timer(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__!r} took {end_time - start_time:.4f} seconds")
return result
return wrapper
# 使用示例
@timer
def add(a, b):
time.sleep(1)
return a + b
print(add(3, 5))