3
假設我們有兩個文件 「a.py」 和 「b.py」蟒蛇進口和範圍
a.py
from b import funcB
funcB()
b.py
varB = 123
def funcB():
print(varB)
正如你在「a.py」中看到的,我從「b」只導入「funcB」, 之後,我在「a」中執行「funcB」,但是一些如何「funcB」 可以看到「b」中定義的「varB」。但我只有進口 「funcB」。我以爲「從b導入funcB」只會導入「funcB」 而沒有別的。
爲什麼「funcB」可以訪問「varB」?這是某種設計決定嗎?
謝謝
*「這是某種設計決定嗎?」是的。整個模塊是真正導入的,但只有您指定的名稱添加到您當前的名稱空間。否則,您導入的功能將無法訪問,例如輔助函數和導入在源腳本中定義,這將是非常無益的。 – jonrsharpe
相關:[如何從... import ...語句導入全局變量](http://stackoverflow.com/q/25283616) –
這也很有用:[from import vs import](http:// stackoverflow .COM /問題/ 9439480 /從進口-VS-進口) –