3

Trying to get a function name in Python, I would like to achieve something like this:

def my_function():
    do_something...

def get_func_name(function):
    return magic(function)

>>> print get_func_name(my_function)
>>> my_function

How should this be done?

Thanks a lot!

Juan Carlos Coto
  • 11,900
  • 22
  • 62
  • 102

2 Answers2

4

Python has a magical attribute __name__.

def get_func_name(function):
    return function.__name__
Hans Then
  • 10,935
  • 3
  • 32
  • 51
3
def my_function():
    pass

def get_func_name(function):
    try:
        # Python2
        return function.func_name
    except AttributeError:
        # Python3
        return function.__name__

print(get_func_name(my_function))
unutbu
  • 842,883
  • 184
  • 1,785
  • 1,677