Search code examples
pythonfunctionkeyword-argument

Python pass in function as argument, print the function name and results


If I want to pass a function func1 as argument in another function, but want to return the function name, what shall I do?

let say

def func1(x):
    return x**2

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

which means I want things like:

func_name, result = main_function(func1,2)

print(func_name)
func1
print(result)
4

Solution

  • 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)
    

    output is

    f name= func1
    f value= 25