【发布时间】:2011-02-02 09:15:27
【问题描述】:
Python文档中有__import__的一部分,看不懂:
__import__(name[, globals[, locals[, fromlist[, level]]]])该函数导入模块
name,可能使用给定的globals和locals来确定如何在包上下文中解释name。标准实现根本不使用其locals参数,而仅使用其globals来确定导入语句的包上下文。
对模块名称有什么“解释”?什么是包上下文?
使用这些参数的示例调用如下所示:
spam = __import__('spam', globals(), locals(), [], -1)
为什么示例向函数提供globals() 和locals()?当我只提供globals() 时会发生什么?或者两者都不是?
我可能缺少与导入模块相关的命名空间逻辑的某些部分。你能给我指出一篇解释这个/有__import__函数示例的文章吗?
【问题讨论】:
-
这个问题不应该移到 StackOverflow 上吗?
-
这很有趣,我开始在 SO 上写这个,但我正在考虑是否应该将它发布在programmers.SE 上...我显然需要查看常见问题解答...
-
您应该选择以下答案之一作为此问题的可接受答案。恕我直言,9000 的回答一针见血,解释了 Python 对
globals的作用以确定模块命名空间。