在python中恢复所有内置命名

时间:2017-08-11 10:03:49

标签: python

读完之后 How do I clear all variables in the middle of a Python script?我使用了代码:

import sys
sys.modules[__name__].__dict__.clear()

并删除了python中的所有内置名称。

我尝试通过卸载我的Anaconda并再次安装来恢复它,但似乎问题无法解决。

e.g。对于我的代码:

ax.plot_surface(x1data2d , x2data2d , ydata2d, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

显示错误:

NameError: name 'cm' is not defined

有谁知道如何恢复这些内置名称?

1 个答案:

答案 0 :(得分:2)

cm不是内置名称。

要使代码生效,您必须导入cm模块:

from matplotlib import cm

请注意,sys.modules[__name__].__dict__.clear()(几乎)总是一个坏主意。如果您不希望使用大量变量来混淆“命名空间”,则最好使用modules并避免使用任何from some_package import *语句。

请注意,在sys.modules[__name__].__dict__.clear()之后,您只需重新启动解释器就不必重新安装Python。但请不要使用该命令 - 即使author of the answer说这不是他推荐的内容:

  

我怀疑你是否真的想要这样做,因为“每个名字”都包含所有内置插件,因此在彻底消除之后你无能为力。请记住,在Python中实际上没有“变量”这样的东西 - 有许多种类的对象(包括模块,函数,类,数字,字符串......),还有绑定到对象的名称;序列的作用是从模块中删除每个名称(当且仅当对它们的每个引用都被删除时,相应的对象才会消失)。