首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3:为什么__spec__要工作?

Python3:为什么__spec__要工作?
EN

Stack Overflow用户
提问于 2015-01-06 06:18:47
回答 2查看 5.1K关注 0票数 10

变量__spec__从何而来?

代码语言:javascript
复制
$ 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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-06 06:21:30

来自Python语言引用,第5部分:导入系统 (重点雷):

__spec__属性必须设置为导入模块时使用的模块规范。这主要用于内省和重新加载。适当地设置__spec__同样适用于在解释器启动期间初始化的模块__main__**,是一个例外,其中** __spec__ 在某些情况下被设置为无--。 3.4版的新版本。

票数 8
EN

Stack Overflow用户

发布于 2015-01-06 06:25:19

根据Python3 文档,如果您正在使用交互式promt,则__spec__始终是None

当Python使用-m选项启动时,__spec__被设置为相应模块或包的模块规范。当__spec__模块作为执行目录、zipfile或其他sys.path条目的一部分加载时,也会填充__main__。 在其他情况下,__main__.__spec__ 设置为None,因为用于填充__main__的代码不直接对应于重要模块:

  • 交互式提示
  • -c开关
  • 从stdin跑
  • 直接从源或字节码文件运行。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27793142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档