Python:模块和名称空间共享的变量

时间:2016-09-21 13:02:29

标签: python module global-variables

阅读之后 Python - Visibility of global variables in imported modules

我很好奇这个例子:

import shared_stuff
import module1

shared_stuff.a = 3
module1.f()

如果没有其他变量" a"在其他任何地方,为什么以下一个不相同?

from shared_stuff import *
import module1

a = 3
module1.f()

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

1 个答案:

答案 0 :(得分:1)

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