读完之后 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
有谁知道如何恢复这些内置名称?
答案 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中实际上没有“变量”这样的东西 - 有许多种类的对象(包括模块,函数,类,数字,字符串......),还有绑定到对象的名称;序列的作用是从模块中删除每个名称(当且仅当对它们的每个引用都被删除时,相应的对象才会消失)。