gpt4 book ai didi

julia - 在 Julia 中查看用户定义的变量

转载 作者:行者123 更新时间:2023-12-02 00:43:27 25 4
gpt4 key购买 nike

也许这是我在文档中忽略的事情,但是如何查看 Julia 中当前定义的变量列表?例如,在 R 中,您可以使用 ls() ,它将为您提供当前范围内的用户定义对象的列表。 Julia 中有类似的东西吗?

这与 this question 非常相似,但似乎 whos 函数(以及 names)将列出模块和其他非用户定义的内容。如何简单地列出用户定义且未从其他模块导出的变量?

最佳答案

一种可能的方法是制作 whos 的变体,限制当前模块中对象的摘要:

function whos_user(m::Module=current_module())
for v in sort(names(m))
s = string(v)
if isdefined(m, v) && summary(eval(m, v)) != "Module" && s != "whos_user"
println(s)
end
end
end

如果我们这样做

x = 1
y = "Julia"
f(n) = n + 1
whos_user()

我们得到

f
x
y

还可以编写 whos_user 来返回符号数组而不是打印:

function whos_user(m::Module=current_module())
v = sort(names(m))
filter(i -> isdefined(m, i) && summary(eval(m, i)) != "Module" && string(i) != "whos_user", v)
end

然后运行与之前相同的测试代码,我们得到:

3-element Array{Symbol,1}:
:f
:x
:y

如果没有更好的方法来做到这一点,那么我会接受这个答案。

关于julia - 在 Julia 中查看用户定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30983371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com