Python:从submodu中删除主变量

2024-10-05 14:31:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在IDLE中,我定义变量,查看其中的几个。my1=10; my2=20; my3=300; my4=500;等等,其中很多。现在我想编写模块mmm,它可以删除所有这些变量。我能做吗?如何编写模块mmm,它可以删除这些myNNN名称,使IDLE忘记它们。你知道吗


Tags: 模块名称定义idlemmmmy2my1my3
3条回答

您可以使用'del'删除任何变量,下面是一个示例:

import mmm

del mmm.s

此代码未在模块示例上测试,请测试并重放。你知道吗

在Python中,“global”实际上是指“模块级”,而不是“进程级”。瞧,您的“mmm”模块将而不是神奇地访问“root”模块中定义的名称。你知道吗

我的解释是,假设您试图从模块“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'
 >>>

让我们删除模块mmm内的变量s

>>> del mmm.s
>>> mmm.s
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 's'
>>>

但您仍然可以在本地名称空间中访问变量define:

>>> s
'aa'
>>>

因为它仍然存在于本地名称空间中:

>>> locals()['s']
'aa'
>>>

现在,让我们重新导入模块mmm

>>> reload(mmm)
<module 'mmm' from 'mmm.pyc'>
>>> mmm.s
'aa'
>>>

重新导入模块mmm后,将重新获得mmm.s。你知道吗

相关问题 更多 >