在python中将函数名称作为字符串获取

时间:2011-08-22 00:17:35

标签: python function introspection

  

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

我有一个名为 func 的函数,我希望能够将函数名称作为字符串。

pseudo-python:

def func () :
    pass

print name(func)

这将打印'func'。

3 个答案:

答案 0 :(得分:17)

这很简单。

print func.__name__

编辑:但你必须小心:

>>> def func():
...     pass
... 
>>> new_func = func
>>> print func.__name__
func
>>> print new_func.__name__
func

答案 1 :(得分:2)

使用__name__

示例:

def foobar():
    pass

bar = foobar

print foobar.__name__   # prints foobar
print bar.__name__   # still prints foobar

有关使用python进行内省的概述,请查看http://docs.python.org/library/inspect.html

答案 2 :(得分:2)

还有几种方法可以做到:

>>> def foo(arg):
...     return arg[::-1]
>>> f = foo
>>> f.__name__
'foo'
>>> f.func_name
'foo'
>>> f.func_code.co_name
'foo'