在函数中如何最佳和通用地引用函数的__name__?
可能重复的问题:
我如何在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函数内部获取函数或方法的名称?)