测试是否已经包含/导入

时间:2019-09-17 22:59:36

标签: julia

我的“ main.jl”文件中包含以下包含/导入内容:

include("Global.jl")
import .Global

由于导入此模块需要一些时间,并且每次执行时都始终相同,因此我想提前测试是否存在.Global,以便可以绕过include / import。

我的想法是我可以在文本编辑器中编辑所有更改,并使用交互式控制台重新加载整个程序,但是如果该步骤已经存在,则放弃该步骤。

2 个答案:

答案 0 :(得分:5)

如果已经导入了import X,则

X已经基本上是无操作了。 问题是当您执行include时,您正在定义一个也称为X的新模块,因此import会尝试并加载新模块。

我建议将您的模块转换为软件包, 将其添加到您的环境中,然后执行import X

答案 1 :(得分:3)

您可以使用isdefined(Main, :ModuleName)(不要忘记冒号)。

if !isdefined(Main, :Global)
    include("Global.jl")
    import .Global
end

对于using是一个名为“ MyPackage”的软件包的相同问题:

if !isdefined(Main, :MyPackage)
    using MyPackage
end