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
  • 10,880
  • 20
  • 54
  • 100

2 Answers2

4

Python has a magical attribute __name__.

def get_func_name(function):
    return function.__name__
Hans Then
  • 10,589
  • 2
  • 31
  • 49
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
  • 777,569
  • 165
  • 1,697
  • 1,613