面试题答案
一键面试import time
def logging_decorator(func):
def wrapper(*args, **kwargs):
print(f"输入参数: {args}, {kwargs}")
result = func(*args, **kwargs)
print(f"返回值: {result}")
return result
return wrapper
def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数执行时间: {end_time - start_time} 秒")
return result
return wrapper
@timer_decorator
@logging_decorator
def original_function(a, b):
return a + b
你可以这样调用:
result = original_function(3, 5)
上述代码中,logging_decorator
装饰器用于记录函数的输入参数和返回值,timer_decorator
装饰器用于计算函数执行的时间并打印。通过嵌套使用这两个装饰器,original_function
函数在执行时,会先被 logging_decorator
装饰,再被 timer_decorator
装饰。这样在函数执行前后,就能分别实现记录输入输出和计算执行时间的功能。