从python中的函数对象获取易读的函数名

本问题已经有最佳答案,请猛点这里访问。

试图在Python中得到一个函数名,我想实现这样的东西:

1
2
3
4
5
6
7
8
def my_function():
    do_something...

def get_func_name(function):
    return magic(function)

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

应该怎么做呢?

谢谢!


Python有一个神奇的属性__name__

1
2
def get_func_name(function):
    return function.__name__

1
2
3
4
5
6
7
8
9
10
11
12
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))