Wolfram mathematica 是否可以删除?“;上下文`";是否从加载的上下文列表[]?
我们可以使用Wolfram mathematica 是否可以删除?“;上下文`";是否从加载的上下文列表[]?,wolfram-mathematica,Wolfram Mathematica,我们可以使用remove[“context`*]”]删除特定上下文中的所有符号。但是,是否可以从系统中删除“context`”本身,使其不再在中列出 据我所知(猜测),上下文一旦变为空(没有符号),就会自动从上下文[]中删除。至少,这在我的测试中发生了。这里有一个: In[1]:= BeginPackage["Test`"] EndPackage[] Out[1]= Test` In[3]:= MemberQ[Contexts[],"Test`"] Out[3]= False In[4]
remove[“context`*]”]
删除特定上下文中的所有符号。但是,是否可以从系统中删除“context`”
本身,使其不再在中列出 据我所知(猜测),上下文一旦变为空(没有符号),就会自动从上下文[]
中删除。至少,这在我的测试中发生了。这里有一个:
In[1]:=
BeginPackage["Test`"]
EndPackage[]
Out[1]= Test`
In[3]:= MemberQ[Contexts[],"Test`"]
Out[3]= False
In[4]:= Test`a
Out[4]= a
In[5]:= MemberQ[Contexts[],"Test`"]
Out[5]= True
In[6]:= Remove["Test`*"]
In[7]:= MemberQ[Contexts[],"Test`"]
Out[7]= False
这也可以解释为什么调用
Contexts[]
要花费相当大的时间,系统必须检查每个上下文是否为空。无论如何,您的问题的答案似乎很简单-删除所有符号,上下文将从Contexts[]
中删除。这也适用于系统加载的上下文-您可以尝试一些(XML'
),尽管至少不用说这不是一个好的实践。CleanSlate不会这样做吗?我不知道怎么做。如果您在冲突的上下文中遇到问题,那么我将从$ContextPath
中删除该上下文,这样就不会再给我带来任何麻烦。@TomD Yes,正如Bill Rowe在,附录[$ContextPath,“context`”中所示;CleanSlate[“context`]”
将执行此操作(如果读入CleanSlate.m
时,context`
不在初始$ContextPath
上)。但是快速查看CleanSlate.m
文件中的CleanSlate
说明,它只是清除“上下文”
及其所有子上下文,以便自动删除此上下文。这对my不起作用,因为包仍保留在$ContextPath
中,因此例如需要
将不会重新加载它。知道为什么吗?@ThomasFankhauser不知道。但我在这里讨论的是另一件事。制作一个独立的小例子来说明你的问题,并询问M.SE——这样你会对你的问题有更多的关注。