如何找到当前函数的名称?

时间:2018-09-24 22:18:53

标签: python python-3.x debugging

我知道它看起来很la脚,但是我想让一个函数能够访问其自己的名称,以打印错误或调试消息。这样就很容易有一种标准的方式开始打印输出:

print(__myname__,"is reporting the following..."

我宁愿每次都不必显式键入名称,因为我经常 想剪切并粘贴此类内容,我希望将任何名称更改都自动进行,因此更可靠。

这类似于another question,但我需要当前函数的名称,而不是其调用方的名称。

我注意到特殊名称

__name__

此位置报告的是程序包的名称,而不是函数的名称。

1 个答案:

答案 0 :(得分:3)

您可以使用traceback模块提取堆栈信息:

import traceback

def current_function_name():
    return traceback.extract_stack()[-2][2]    

def foo():
    print current_function_name()

>>> foo()
foo
相关问题