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

Julia如何通过编程获取指定方法的关键字参数名称列表

解决方案

你可以通过Julia内置的未导出函数Base.kwarg_decl实现该需求,以下是封装完成的kwargs函数:

function kwargs(obj)
    # 若传入为函数则默认取第一个方法,可自行调整方法匹配逻辑适配多方法场景
    target_method = obj isa Function ? first(methods(obj)) : obj
    return Base.kwarg_decl(target_method)
end

测试效果

针对你给出的函数定义:

function f(a = 1; first = 5, second = "asdf")
    return a
end

调用后返回结果符合预期:

kwargs(f)
# returns [:first, :second]

kwargs(methods(f).ms[1])
# returns [:first, :second]

注意事项

  • 若函数存在多个方法,传入函数对象时默认取第一个方法的关键字参数,需要获取指定方法的参数时直接传入对应Method对象即可
  • 该实现兼容Julia 1.0及以上版本,无需引入额外依赖
  • 若对应方法没有定义关键字参数,调用后会返回空符号数组Symbol[]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:36:03