>>> 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'
>>>
您可以使用'del'删除任何变量,下面是一个示例:
此代码未在模块示例上测试,请测试并重放。你知道吗
在Python中,“global”实际上是指“模块级”,而不是“进程级”。瞧,您的“mmm”模块将而不是神奇地访问“root”模块中定义的名称。你知道吗
我的解释是,假设您试图从模块“mmm”中删除一个变量
我有一个名为
mmm
的模块,并在该模块中定义了s = 'aa'
。你知道吗让我们删除模块
mmm
内的变量s
:但您仍然可以在本地名称空间中访问变量define:
因为它仍然存在于本地名称空间中:
现在,让我们重新导入模块
mmm
:重新导入模块
mmm
后,将重新获得mmm.s
。你知道吗相关问题 更多 >
编程相关推荐