You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3 如何实现指定函数每次被调用时的全调用链溯源打印

解决方法

你只需修改four.py中的myFunction函数,引入Python内置的调试模块打印调用栈即可实现需求,无需改动其他业务文件代码。

方案1:直接打印完整栈信息(最便捷)

使用内置traceback模块直接输出标准调用栈:

# four.py
import traceback

def myFunction():
    print("=== 本次调用的完整调用链 ===")
    traceback.print_stack()
    # 原有业务逻辑保留
    print("trace of which functions called me, back to original.")

方案2:自定义格式化输出

如果需要提取调用链的关键字段自定义排版,可使用inspect模块实现:

# four.py
import inspect

def myFunction():
    print("=== 本次调用的完整调用链 ===")
    # 遍历栈帧,跳过当前函数自身的栈帧
    for index, frame in enumerate(inspect.stack()[1:], start=1):
        print(f"第{index}层:文件[{frame.filename}],行号[{frame.lineno}],触发函数[{frame.function}]")
    # 原有业务逻辑保留
    print("trace of which functions called me, back to original.")

效果说明

两种方案都会在每次myFunction被调用时输出全链路调用信息,包含触发调用的脚本路径、所在行号、所属函数,你可以直接对比每次调用的来源,快速定位到多余的异常调用位置。


内容的提问来源于stack exchange,提问作者CodeMed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:06:10