在函数中如何最佳和通用地引用函数的__name__?

0 投票
2 回答
2726 浏览
提问于 2025-04-16 19:14

可能重复的问题:
我如何在Python函数或方法内部获取函数或方法的名称?

下面的代码可以返回它自己的名字。它能正常工作,但我还是需要在__name__前面加上'test.'。有没有什么通用的方法可以直接引用__name__

def test():
   print test.__name__

2 个回答

3

如果我理解得没错的话,Inspect 是你要找的东西。

import inspect
def test():
    print inspect.stack()[0][3]
0

在Python函数中,如果不使用回溯(backtrace),是无法直接获取函数名称的。

In [1]: import inspect

In [2]: def test():
   ...:     print inspect.stack()[0][3]
   ...:

In [3]: test()
test

所以,你可以使用 inspect.stack()[0][3] 来获取当前函数的名称。如果你想把这个功能放到一个单独的函数里,可以使用 inspect.stack()[1][3]

(来源于 如何在Python函数内部获取函数或方法的名称?)

撰写回答