Python传入函数作为参数,打印函数名称和结果

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

如果我想在另一个函数中传递函数func1作为参数,但又想返回函数名,该怎么办?

让说

1
2
3
4
5
6
def func1(x):
    return x**2

def main_function(func1,x):
    .....
    return ___(name of func1),value of func1(x)___

这意味着我想要:

1
2
3
4
5
6
func_name, result = main_function(func1,2)

print(func_name)
func1
print(result)
4


只需使用__name__获取函数名为str

1
2
3
def main_function(func, x):
    # do something else
    return func.__name__, func(x)

试试这个:

1
2
def main_function(f, x):
    return f.__name__, f(x)


1
2
3
4
5
6
7
8
9
def func1(x):
    return x**2

def main_function(f,x):
    print('f name=', f.__name__)
    print('f value=', f(x))


main_function(func1, 5)

输出是

1
2
f name= func1
f value= 25