【问题标题】:Get names of keywords for Julia methods获取 Julia 方法的关键字名称
【发布时间】:2021-07-21 08:08:12
【问题描述】:

我有一个类似的功能

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

有没有办法以编程方式返回带有关键字参数名称的向量。比如:

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

我意识到这可能会因为函数名有多种方法而变得复杂。但我希望如果指定了确切的方法,这仍然是可能的。例如:

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

【问题讨论】:

    标签: julia keyword-argument


    【解决方案1】:

    只需使用Base.kwarg_decl()

    julia> Base.kwarg_decl.(methods(f))
    2-element Vector{Vector{Symbol}}:
     []
     [:first, :second]
    

    如果你也需要第一个参数a,你也可以试试:

    julia> Base.method_argnames.(methods(f))
    2-element Vector{Vector{Symbol}}:
     [Symbol("#self#")]
     [Symbol("#self#"), :a]
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多