2016-09-21 128 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

是的,我現在明白了。我相信它也保持了與模塊的鏈接。謝謝。 –