我们可以使用Remove["context`*"]
删除特定上下文中的所有符号。但是,是否可以从系统中删除"context`"
本身,以便它不再列在Contexts[]
中?
答案 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'
),但不用说这不是一个好习惯,至少可以说。