我有一個與此類似但不同的問題。我在模塊中有一個函式,我想看看函式命名空間中定義了哪些變數。在另一篇文章中,他們說使用varinfo,但這似乎只適用于 Main 命名空間。例如,如果我運行這個
module Test
function hello()
a = 1
varinfo()
return a
end
end
import .Test
Test.hello()
我收到這個錯誤
WARNING: replacing module Test.
ERROR: UndefVarError: varinfo not defined
有沒有辦法在給定的命名空間中獲取變數串列?我正在尋找的是一個函式,該函式在呼叫時會輸出所有可用變數(在我的示例中為 a)以及命名空間中的可用模塊。
PS。我想補充一下,這varinfo是非常有限的,因為它的輸出是 Markdown.MD,不能被迭代。如果可能的話,我更喜歡在某種串列或字典中輸出變數和值的函式。
uj5u.com熱心網友回復:
varinfo僅顯示全域變數。如果你想要區域變數,你需要使用Base.@locals宏:
module Test
function hello()
a = 1
println(Base.@locals)
return a
end
end
現在你可以這樣做:
julia> Test.hello()
Dict{Symbol, Any}(:a => 1)
1
uj5u.com熱心網友回復:
這是你想要的嗎?
module Test
function hello()
a = 1
println(Main.varinfo(@__MODULE__; all=true, imported=true))
return a
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/469300.html
上一篇:為什么這個鏈表添加方法有效?
