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——这样你会对你的问题有更多的关注。