Skip to main content
 首页 » 编程设计

python之使模块全局化

2025年05月04日12zhenyulu

我想知道为什么

 >>> def func2(): 
...     global time 
...     import time 
... 
>>> time 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
NameError: name 'time' is not defined 
>>> func2() 
>>> time 
<module 'time' (built-in)> 
>>> 

有效,但是

   >>> def func(): 
...     global module 
...     module="time" 
...     exec ("global %s" %module) 
...     exec ("import %s" %module) 
... 
>>> time 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
NameError: name 'time' is not defined 
>>> func() 
>>> time 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
NameError: name 'time' is not defined 

不工作,我怎么让它工作 =) 谢谢

请您参考如下方法:

您的每个 exec() 调用都发生在一个单独的命名空间中。放弃这条路;这只会导致毁灭。