Julia在模块中显示功能

Cha*_* CB 11 module package julia

我正在寻找一个Julia函数,当应用于模块名称时,它会列出通过模块可用的函数.

基本上,我不想浏览源代码,我注意到许多模块的文档通常都没有.

Iai*_*ing 12

names 工作,主要是:

module MyMod
  test() = 3
  foo() = 4
end
names(MyMod, true)
Run Code Online (Sandbox Code Playgroud)

给我

4-element Array{Symbol,1}:
 :eval
 :test
 :foo
 :MyMod
Run Code Online (Sandbox Code Playgroud)

只需要删除模块名称和 eval


小智 5

稍微扩展上一个答案,以下似乎有效:

function module_functions(modname)
    list = Symbol[]
    for nm in names(modname)
        typeof(eval(nm)) == Function && push!(list,nm)
    end
    return list
end
Run Code Online (Sandbox Code Playgroud)

例:

using PyPlot
module_functions(PyPlot)
Run Code Online (Sandbox Code Playgroud)

在REPL中生成以下输出:

165-element Array{Symbol,1}:
 :contourf
 :over
 :xticks
 :ion
 :flag
 :summer
 :stackplot
 :tricontourf
 :minorticks_on
 :gray
 :savefig
 :errorbar
 :box
 :figure
 :vlines
 :subplot_tool
 :jet
 ?
 :locator_params
 :imshow
 :pie
 :sci
 :axhline
 :streamplot
 :hist2d
 :copper
 :text3D
 :Axes3D
 :loglog
 :zticks
 :hexbin
 :pcolor
 :semilogy
 :thetagrids
Run Code Online (Sandbox Code Playgroud)