17.基准库存模型中的在途库存:理论解析与管理实践
2026/1/14 15:17:19
importfunctoolsimportloggingfromtypingimportCallable logger=logging.getLogger(__name__)deflog_io(func:Callable)->Callable:""" 记录工具函数的输入参数和输出的装饰器。 Args: function:要装饰的工具功能 Returns: 带有输入/输出日志记录的包装函数 """@functools.wraps(func)defwrapper(*args,**kwargs):func_name=func.__name__ parms=", ".join([*(str(arg)forarginargs),*(f"{k}={v}"fork,vinkwargs.items())])logger.info(f"function name:{func_name}, in-params:{parms}")resp=func(*args,**kwargs)logger.info(f"function:{func_name}({parms}) response:{resp}")returnrespreturnwrapper在不修改原函数代码的前提下,自动记录函数被调用时的输入参数和输出结果,便于调试、审计或监控。
使用示例:
@log_iodefmultiply(a,b):returna*b multiply(2,3)