Module Julia列出模块提供的所有函数

Module Julia列出模块提供的所有函数,module,package,julia,Module,Package,Julia,我正在寻找一个Julia函数,当应用于模块名时,它列出了通过模块可用的函数 基本上,我不想浏览源代码,我注意到许多模块的文档通常并没有全部内容 名称有效,主要是: module MyMod test() = 3 foo() = 4 end names(MyMod, true) 给我 4-element Array{Symbol,1}: :eval :test :foo :MyMod 只需去掉模块名称并对上一个答案稍加扩展,以下内容似乎有效: function module_f

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


基本上,我不想浏览源代码,我注意到许多模块的文档通常并没有全部内容

名称
有效,主要是:

module MyMod
  test() = 3
  foo() = 4
end
names(MyMod, true)
给我

4-element Array{Symbol,1}:
 :eval
 :test
 :foo
 :MyMod

只需去掉模块名称并对上一个答案稍加扩展,以下内容似乎有效:

function module_functions(modname)
    list = Symbol[]
    for nm in names(modname)
        typeof(eval(nm)) == Function && push!(list,nm)
    end
    return list
end
例如:

using PyPlot
module_functions(PyPlot)
在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

如果模块中的一个方法没有文档化,那么它就不可能用于外部消费。在像Julia这样的语言中,没有办法将事物
私有化
和“我们都是成年人”的哲学,简单地不记录某些东西是相当普遍的。Julia 0.5.x似乎不起作用。