【问题标题】:why does the *built-in* python module 'sys' need to be explicitly imported with an 'import' statement?为什么需要使用 'import' 语句显式导入 *built-in* python 模块 'sys'?
【发布时间】:2018-03-17 19:29:53
【问题描述】:

python documentation 说:

“一个特殊的模块值得关注:sys,它内置在每个 Python 解释器中。”

我的理解是,如果 Python 解释器本身内置了一个模块,那么就不需要显式的 import 语句。如果 sys 模块是 Python 解释器内置的,那为什么 sys 模块需要显式的 import 语句呢?

【问题讨论】:

    标签: python python-2.7 python-3.x


    【解决方案1】:

    sys 在 Python 启动时被导入。因此,当您导入sys 时,它实际上并没有做任何事情,除了将变量名绑定到已经存在的模块。

    创建模块实例时,当许多(可能大多数)模块不需要使用sys 时,没有理由将sys 名称绑定在模块范围内。因此,默认情况下,该名称不在范围内。

    【讨论】:

    • 我明白了,谢谢。
    【解决方案2】:

    import 执行两个功能:

    1. 它从磁盘加载模块,初始化并执行它。
    2. 它将模块添加到本地命名空间。

    对于“内置”模块,第 1 项不是问题,但第 2 项仍然很重要;没有它,代码会抛出NameError

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多