2016-09-21 76 views
0

共享在 Python - Visibility of global variables in imported modules的Python:悫模块和命名空间

读书我很好奇这个例子之后变量:

import shared_stuff 
import module1 

shared_stuff.a = 3 
module1.f() 

如果没有其他变量“一个”其他地方,为什么下面的一个不等同?

from shared_stuff import * 
import module1 

a = 3 
module1.f() 

我们忽略了“明确比隐含更好”:我是出于好奇,因为我更喜欢第一种语法。 我来自C,看起来我并没有完全掌握Python的命名空间的微妙之处。 即使是解释此名称空间行为的文档链接也足够了。

回答

1

导入*将模块中的所有引用复制到当前范围中;根本没有连接到原始模块。

+0

是的,我现在明白了。我相信它也保持了与模块的链接。谢谢。 –