Python:获取调用此函数的函数名称

时间:2014-08-27 10:53:23

标签: python

目前我可以使用此命令获取函数名称:

sys._getframe().f_code.co_name

我想把它放在这样的功能中:

def func_name:
    return sys._getframe().f_code.co_name

此函数始终返回' func_name'。是否可以获得调用此函数的函数名称?

2 个答案:

答案 0 :(得分:2)

如果您发布的代码适合您,请尝试给_getframe()一个参数1.参数告诉返回哪个帧,默认为0;你想要1,意思是从第0帧被调用的帧。

但是,如果你需要它来处理更多Python的实现,那么“inspect”模块可能就是你想要的。

答案 1 :(得分:1)

避免使用sys._getframe

import inspect

def bar():
    current_frame = inspect.currentframe()
    previous_frame = current_frame.f_back
    print previous_frame.f_code.co_name

def foo():
    bar()

foo()