Compilation Julia-REPL没有';t修改模块后更新模块变量';s代码

Compilation Julia-REPL没有';t修改模块后更新模块变量';s代码,compilation,julia,Compilation,Julia,编辑:最终它与此无关。我为任何处于类似情况的人负责 一个月前我发现了朱莉娅,从那时起我就对她着迷了。 然而,似乎编译(或变量范围)对我来说仍然不清楚 我在绘图中有此模块。jl: module plottinghhkp instance_path = "somestring" function dosomething() ... end ... end 然后将其包含在REPL中以运行模块函数 julia> include("plots.jl") ... julia> hh

编辑:最终它与此无关。我为任何处于类似情况的人负责


一个月前我发现了朱莉娅,从那时起我就对她着迷了。 然而,似乎编译(或变量范围)对我来说仍然不清楚

我在
绘图中有此模块。jl

module plottinghhkp

instance_path = "somestring"

function dosomething()
  ...
end

...
end
然后将其包含在REPL中以运行模块函数

julia> include("plots.jl")
...
julia> hhkplot.instance_path
julia> "somestring"
然后我修改
实例路径
,并再次使用
包含
重新导入,但
实例路径
显示旧值而不是新值:

julia> include("plots.jl")
...
julia> plottinghhkp.instance_path
"somestring"
我的解决方案是将变量重命名为
instancepath
,以便创建一个新符号,但是,autocomplete现在显示:

julia> plottinghhkp.
instance_path  instancepath
julia> plottinghhkp.instancepath
"newvalue"
julia> plottinghhkp.instance_path
"somestring"
当模块中不再存在实例路径符号时。 使用
workspace()
创建一个全新的环境永远不会结束

为什么会这样?我是否需要显式地加载Julia而不进行预编译,或者向模块添加
\uuuuprecompile\uuuuuuu(false)
?或者是关于变量作用域的问题


谢谢。

我设法解决了这个问题。当然,它与编译无关。这是一个名称空间问题。有两个变量的名称相同,但每个变量都有不同的名称空间,因为其中一个变量被包装在一个模块中

如果遇到类似情况,请务必查看所有模块/名称空间。使用不同的名称空间将是理想的,这样您就不会有任何冲突