变量__spec__从何而来?
$ brew install python3
$ python3
Python 3.4.2 (default, Jan 5 2015, 11:57:21)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
# Under Python 2.7.x this gives a NameError
>>> None is __spec__
True发布于 2015-01-06 06:21:30
来自Python语言引用,第5部分:导入系统 (重点雷):
__spec__属性必须设置为导入模块时使用的模块规范。这主要用于内省和重新加载。适当地设置__spec__同样适用于在解释器启动期间初始化的模块。__main__**,是一个例外,其中**__spec__在某些情况下被设置为无--。 3.4版的新版本。
发布于 2015-01-06 06:25:19
根据Python3 文档,如果您正在使用交互式promt,则__spec__始终是None:
当Python使用-m选项启动时,
__spec__被设置为相应模块或包的模块规范。当__spec__模块作为执行目录、zipfile或其他sys.path条目的一部分加载时,也会填充__main__。 在其他情况下,__main__.__spec__设置为None,因为用于填充__main__的代码不直接对应于重要模块:
https://stackoverflow.com/questions/27793142
复制相似问题