Module 有没有办法撤销Julia中的“using”?
假设在Julia控制台中我是这样做的Module 有没有办法撤销Julia中的“using”?,module,julia,Module,Julia,假设在Julia控制台中我是这样做的 using Gadfly 然后意识到我实际上想要使用一个不同的绘图命令 using Winston 似乎plot()仍将使用Gadfly版本。有没有办法停止使用牛虻 using !Gadfly !using Gadfly unuse Gadfly 诸如此类的事情?正如其他人所指出的,您不能在Julia中卸载包。唯一的方法是重新启动juliarepl。但是,如果要使用包中的特定函数,可以使用Winston.plot()或Gadfly.plot()。因此,
using Gadfly
然后意识到我实际上想要使用一个不同的绘图命令
using Winston
似乎plot()
仍将使用Gadfly版本。有没有办法停止使用牛虻
using !Gadfly
!using Gadfly
unuse Gadfly
诸如此类的事情?正如其他人所指出的,您不能在Julia中卸载包。唯一的方法是重新启动juliarepl。但是,如果要使用包中的特定函数,可以使用
Winston.plot()
或Gadfly.plot()
。因此,这将确保您使用的是所需名称空间中的正确函数。正如@Jubobs在链接中提到的,目前没有一种方法可以选择性地停止使用包,或者选择性地从REPL中删除定义(如果您熟悉,类似于Matlab的clear
命令)。所以简单的答案是否定的
但是,您可以使用Gadfly.plot()
或Winston.plot()
引用特定模块中的函数。如果您已经编写了代码,这并不能为您的问题提供解决方案,但它仍然是未来工作的一个选项
有workspace()
命令,但该命令将从Main
模块中删除所有内容,并导入一个新的环境。将丢失您定义的所有函数和变量。。。所以明智地使用它
正如@Matt B所指出的,实际上并不会丢失函数和变量。它们被移动到名为
LastMain
的模块中。因此,如果我定义了一个名为myfunc()
的函数,并且我调用了workspace()
,那么尝试在REPL处调用myfunc()
将导致UndefVarError
。但是,您仍然可以通过调用LastMain.myfunc()
来访问此函数。这适用于调用workspace()
之前在REPL中定义的任何内容 相关:你不会真的丢失它们,它们只是被藏在LastMain
模块中。