在IDLE中,我定义变量,其中包括几个变量。 my1=10; my2=20; my3=300; my4=500;
等,其中很多都是。现在我想编写可以删除所有这些变量的模块mmm
。我可以做吗?如何编写可以删除这些mmm
名称的模块myNNN
,以便IDLE忘记它们。
答案 0 :(得分:0)
您可以使用'del'删除任何变量,这是一个示例:
import mmm
del mmm.s
此代码未在模块示例中进行测试,请测试并重播。
答案 1 :(得分:0)
我假设你试图从模块中删除一个变量'mmm'
我有一个名为mmm
的模块,我在模块中定义了s = 'aa'
。
>>> s = 'aa'
>>> import mmm
>>> mmm.s # variable from module name space
'aa'
>>> s # this is the variable in local name space.
'aa'
>>>
让我们删除模块s
中的变量mmm
:
>>> del mmm.s
>>> mmm.s
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 's'
>>>
但您仍然可以访问本地名称空间中的变量:
>>> s
'aa'
>>>
因为它仍然存在于locals命名空间中:
>>> locals()['s']
'aa'
>>>
现在,让我们重新导入模块mmm
:
>>> reload(mmm)
<module 'mmm' from 'mmm.pyc'>
>>> mmm.s
'aa'
>>>
重新导入模块mmm
后,您的mmm.s
将重新获得。
答案 2 :(得分:0)
在Python中,“全局”实际上意味着“模块级”,而不是“进程级”。 IOW,你的“mmm”模块将不神奇地访问“root”模块中定义的名称。