Python传入函数作为参数,打印函数名和结果[重复]

Posted

技术标签:

【中文标题】Python传入函数作为参数,打印函数名和结果[重复]【英文标题】:Python pass in function as argument, print the function name and results [duplicate] 【发布时间】:2018-09-01 20:50:15 【问题描述】:

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

说吧

def func1(x):
    return x**2

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

这意味着我想要这样的东西:

func_name, result = main_function(func1,2)

print(func_name)
func1
print(result)
4

【问题讨论】:

但是,请注意函数可以有多个标识符,或者没有。 __name__ 将仍然是分配给它的第一个,除非另有更新。 【参考方案1】:
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)

输出是

f name= func1
f value= 25

【讨论】:

【参考方案2】:

试试这个:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于Python传入函数作为参数,打印函数名和结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python函数相关笔记

python面试题,设计装饰器,接收一个int类型的参数,可以用来装饰任何的函数, 如果函数运行的时间大于number,则打印出函数名和函数的运行时间

Python快速学习-函数

python笔记5:函数式编程

Python函数式编程(把函数作为参数传入)

python的高阶函数