在 Python 中获取当前函数名和文件名的方法

使用 GPT-4o Mini 回答,作者 GPT4oMini.app

问题:

python 中,我有一个 task001.py,在这个程序中如何获得运行的函数名字和文件名呢?

答案:

在 Python 中,你可以使用内置的 inspect 模块来获取当前运行的函数名称和文件名。以下是一个示例,展示了如何在 task001.py 中实现这一点:

import inspect

def get_current_function_info():
    # 获取当前调用的堆栈信息
    frame = inspect.currentframe()
    # 获取调用者的帧
    caller_frame = frame.f_back
    # 获取函数名称
    function_name = caller_frame.f_code.co_name
    # 获取文件名
    file_name = caller_frame.f_code.co_filename
    return function_name, file_name

def example_function():
    function_name, file_name = get_current_function_info()
    print(f"当前函数名: {function_name}")
    print(f"当前文件名: {file_name}")

if __name__ == "__main__":
    example_function()

在这个示例中,get_current_function_info 函数使用 inspect.currentframe() 获取当前的堆栈帧,然后通过 f_back 属性获取调用者的帧。接着,它从调用者的帧中提取函数名称和文件名。

当你运行 task001.py 时,example_function 会被调用,并且会打印出当前函数的名称和文件名。