看到装饰后的函数仍显示原函数参数,常见原因是 inspect.signature 默认 follow_wrapped=True,会沿 __wrapped__ 元数据链取到被包装函数的签名;这是签名展示的结果,不等于包装器实际按同样参数接收和处理。装饰器若通过 functools.wraps 等方式留下 __wrapped__,默认查看时就容易出现这一现象;传入 follow_wrapped=False 可以停止这种自动解包,但停止解包只改变本次查看路径,仍需核对包装器的真实实现。

适用:本说明按 Python 3.14 的 inspect.signature 机制说明,针对南京鼓楼区台式电脑上的 Python 排查场景。先确认实际解释器版本、signature 调用位置以及是否显式传入 follow_wrapped;只在版本和调用方式相符时直接套用,若环境不同,应按实际版本重新核对。排查以只读、去敏代码、参数和日志为主,不运行客户业务函数,也不修改生产数据。
观察:第一步记录解释器版本、装饰器写法、原函数静态定义和当前 signature 调用,结果条件为能明确默认 follow_wrapped 是否生效。第二步先从原静态代码确认包装链和参数赋值;在维护者自有、已知无副作用的小样上,才可比较两种展示路径。差异只供核对路径,不能单独证明真实业务参数处理,未知客户对象不在此处调用检查函数。第三步只读查看 __wrapped__ 与 __signature__ 是否存在、由谁赋值,以及包装器是否实际接收和转发参数;若存在 __signature__,其精确效果仍须按具体实现另核。
风险:把显示签名当成参数处理契约,可能误判原函数仍在执行,或误以为包装器一定接受这些参数,从而掩盖包装器对参数的过滤、改写或不支持某些关键字参数的情况;对未知注解求值、访问描述符或直接运行业务函数,还可能触发非预期逻辑和数据处理。应把签名展示与调用行为分开核验。
下一步:整理去敏材料,包括实际解释器版本、signature 调用片段及 follow_wrapped 取值、装饰器和原函数静态定义、__wrapped__ 与 __signature__ 的存在及赋值方式、报错日志和脱敏调用参数,不附密钥、个人信息和业务数据。需要咨询时拨打 400-877-9605;电脑快修网是信息展示与第三方维修对接平台,该号码只作咨询,实际范围和安排需确认。