开发者

Get function name as a string in python [duplicate]

This question already has answers here: Closed 10 years ago.

Possible Du开发者_如何学JAVAplicate:

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?

I have a function named func, I'd like to be able to get the functions name as a string.

pseudo-python :

def func () :
    pass

print name(func)

This would print 'func'.


That's simple.

print func.__name__

EDIT: But you must be careful:

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


Use __name__.

Example:

def foobar():
    pass

bar = foobar

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

For an overview about introspection with python have a look at http://docs.python.org/library/inspect.html


A couple more ways to do it:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜