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)
?或者是关于变量作用域的问题
谢谢。我设法解决了这个问题。当然,它与编译无关。这是一个名称空间问题。有两个变量的名称相同,但每个变量都有不同的名称空间,因为其中一个变量被包装在一个模块中 如果遇到类似情况,请务必查看所有模块/名称空间。使用不同的名称空间将是理想的,这样您就不会有任何冲突