在函数中引用函数__name__的最佳和一般方法是什么?

时间:2011-06-09 07:53:23

标签: python python-3.x

  

可能重复:
  How do I get the name of a function or method from within a Python function or method?

下面的代码函数返回它的名字。 它有效但我还是要指定'测试'。在__name__前面。 有没有通用的方法来引用__name__

def test():
   print test.__name__

2 个答案:

答案 0 :(得分:2)

如果我理解正确 - Inspect就是你要找的。

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

答案 1 :(得分:0)

如果不使用回溯,就无法在python函数中访问函数名。

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]

(来自How do I get the name of a function or method from within a Python function or method?