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

如何指定关键字参数重定义函数并构建字符串键-函数值字典?

解决方法

你的问题在于直接调用了函数并把返回值存入字典,而不是存储绑定了指定参数的函数对象。下面提供两种可行的实现方式:

方法1:使用functools.partial(推荐)

functools.partial是Python标准库工具,专门用于固定函数的部分参数,生成一个可直接调用的新函数对象:

from sklearn import metrics
from functools import partial

# 固定average='weighted'参数,生成新的可调用对象
my_dict = {
    'weighted_roc_auc': partial(metrics.roc_auc_score, average='weighted')
}

# 调用时只需传入剩余必要参数(比如y_true和y_score)
# result = my_dict['weighted_roc_auc'](y_true, y_score)

方法2:使用lambda表达式包装

如果只是固定少量参数,也可以用lambda快速包装:

from sklearn import metrics

my_dict = {
    'weighted_roc_auc': lambda y_true, y_score: metrics.roc_auc_score(y_true, y_score, average='weighted')
}

# 调用方式同上
# result = my_dict['weighted_roc_auc'](y_true, y_score)

注意事项

  • 不要在字典赋值时直接调用函数(比如你之前写的metrics.roc_auc_score(*args, average='weighted')),这会立即执行函数并把结果存入字典,而非函数本身。
  • 使用lambda时,要确保参数列表和原函数的剩余必填参数匹配,避免调用时出现参数错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:42:06