是否可以从加载的Contexts []列表中删除“context`”?

时间:2011-07-29 01:06:05

标签: wolfram-mathematica

我们可以使用Remove["context`*"]删除特定上下文中的所有符号。但是,是否可以从系统中删除"context`"本身,以便它不再列在Contexts[]中?

1 个答案:

答案 0 :(得分:6)

据我所知(猜测),一旦上下文(没有符号),就会自动从Contexts[]中删除上下文。至少,这发生在我的测试中。这是一个:

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'),但不用说这不是一个好习惯,至少可以说。