假设我有一个Julia模块MyModule
,它定义了一维卷积函数conv()
。我希望能够通过MyModule.conv()
在导入或使用该文件的文件中调用此函数。例如:使用模块功能代替基本功能Julia
import MyModule.conv
MyModule.conv()
但是,我无法获得此语法的工作; Julia仍然拨打Base.conv()
而不是MyModule.conv()
。我尝试了所有不同风格的using
和import
,但无法使此语法起作用。
这个功能在Julia中可用吗?我觉得我已经看到这在其他朱莉娅包实施,但无法找到一个有效的例子。
EDIT
当前设置如下;在定义之外的ModA中没有提到conv()。
module ModA
function conv(a, b)
println("ModA.conv")
end
end
然后,在另一个文件中,
import ModA
conv(x, y) #still calls Base.conv()
解决
这完全是我的错。由于LOAD_PATH调用的文件的版本不正确,导致无法正常工作,因为LOAD_PATH调用的文件的版本不是我认为正在调用的版本(查找LOAD_PATH中的第一个,而不是我正在编辑的版本)。完全是我的错......
编辑您的模块。然后在另一个文件(或在REPL)中,输入'使用ModA',然后输入'ModA.conv(randn(2),randn(2))'。那是不是你以后的行为?在ModA中 –
,你应该'导入Base.conv'。 – Gnimuc
如果你在'ModA'中导入Base.conv',那么你将会在它上面重载方法,并且只有一个'conv'函数在播放。据我了解,这里的意图是保留两个独立的功能。 –