在Python中获取函数名字符串

4 投票
3 回答
7287 浏览
提问于 2025-04-17 00:04

可能的重复问题:
我如何在Python的函数或方法内部获取函数或方法的名称?
如何在Python中将函数名称作为字符串获取?

我有一个叫func的函数,我想把这个函数的名字以字符串的形式获取到。

伪代码:

def func () :
    pass

print name(func)

这段代码会打印出'func'。

3 个回答

2

还有几种其他的方法可以做到这一点:

>>> def foo(arg):
...     return arg[::-1]
>>> f = foo
>>> f.__name__
'foo'
>>> f.func_name
'foo'
>>> f.func_code.co_name
'foo'
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

17

这很简单。

print func.__name__

编辑:不过你得小心:

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

撰写回答