You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将函数作为参数传递并返回函数名?

解决方案

其实这事儿挺简单的,Python里的函数对象自带一个__name__属性,专门用来存储函数的名称字符串,刚好能满足你获取函数名的需求。

直接看完整的实现代码:

def func1(x):
    return x**2

def main_function(func, x):
    # 获取传入函数的名称,同时调用函数得到计算结果
    return func.__name__, func(x)

# 测试调用
func_name, result = main_function(func1, 2)
print(func_name)  # 输出 'func1'
print(result)     # 输出 4

关键点说明

  • 函数的__name__属性:每个自定义函数都会自动拥有这个属性,它的值就是你定义函数时使用的名称字符串,比如这里func1的__name__就是'func1'。
  • 参数名优化:我把main_function的第一个参数改成了func而非func1,这样这个函数就更通用——不管你传入什么函数,它都能正常返回函数名和计算结果,而不是只能处理名叫func1的函数。当然你要是坚持用func1当参数名也没问题,只是通用性会差一些。

额外小提示

如果传入的是匿名函数(比如lambda x: x**2),它的__name__会是'<lambda>',这也是Python的预期行为哦。

内容的提问来源于stack exchange,提问作者lrh09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:42:02