還有的__import__
Python文檔中的一部分,這一點我不明白:什麼是Python的__import__函數中的`globals`和`locals`參數?
__import__(name[, globals[, locals[, fromlist[, level]]]])
功能導入模塊
name
,可能使用給定globals
和locals
,以確定如何解釋name
在包裝上下文中。標準實現完全不使用locals
參數,並且僅使用它的globals
來確定導入語句的包上下文。
什麼是「解釋」模塊名稱?什麼是包裝上下文?
使用這些參數的示例調用看起來是這樣的:
spam = __import__('spam', globals(), locals(), [], -1)
爲什麼例子提供globals()
和locals()
的功能?當我只提供globals()
會發生什麼?或者既不?
我可能錯過了某些與導入模塊有關的名稱空間邏輯部分。你能不能指出一篇文章解釋這個/有__import__
函數的例子?
不應該將此問題移至StackOverflow嗎? – EOL 2011-02-02 09:52:12
這很有趣,我開始在SO上寫這個,但是在想我是否應該把它發佈在程序員上。相反......我顯然需要看FAQ ...... – 2011-02-02 09:56:18
你應該選擇以下答案之一作爲接受這個問題的答案。恕我直言,9000的答案通過解釋Python使用`globals`來確定模塊名稱空間來解決問題。 – Kumba 2012-10-16 04:14:56