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

Python:如何在函数中打印调用该函数的文件路径?

获取调用函数的文件路径解决方案

直接用Python自带的inspect标准库就能实现,不用额外安装第三方包。

具体代码实现:

  • 修改/b/b.py中的foo()函数:
import inspect

def foo():
    # 获取当前调用栈信息
    stack = inspect.stack()
    # 调用栈的第二个元素对应调用foo的上下文(第一个是foo自身的栈帧)
    caller_info = stack[1]
    # 提取调用者的文件路径
    caller_path = caller_info.filename
    print(f"调用该函数的文件路径:{caller_path}")
  • 在/a/a.py中正常导入并调用:
from b.b import foo

foo()

原理说明:

inspect.stack()会返回当前的调用栈列表,每个元素对应一个栈帧对象。索引0是foo函数自身的栈帧,索引1就是触发foo调用的代码所在的栈帧,从这个栈帧里就能直接提取出调用者的文件路径。

如果是多层嵌套调用(比如A文件调用B文件的函数,B再调用foo),只需要根据调用层级调整栈帧的索引即可。

内容的提问来源于stack exchange,提问作者黯星座

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:45:53