是否隐式导入/加载了任何模块?

时间:2017-06-22 23:28:10

标签: python python-3.x

  1. 使用默认启动交互式Python解释器时 设置,是否有任何模块隐式导入/加载到 解释器,没有明确地运行import <modulename>

    我认为像sysbuiltins这样的模块会是,但是当我 输入他们的模块名称,

    >>> sys
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'sys' is not defined
    
    >>> builtins
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'builtins' is not defined
    

    默认情况下,没有隐式导入/加载模块是正确的吗?

  2. 执行python脚本时,是否隐式有任何模块 导入/加载到脚本中,无需显式指定 脚本中的import <modulename>

  3. 感谢。

2 个答案:

答案 0 :(得分:2)

通常自动导入的一个模块是site.py.它导入了很多其他模块。但即使您使用选项-S阻止它导入,Python仍然会导入许多模块。请尝试以下脚本:

#! /usr/bin/python2.7 -ESs

import sys
print(sys.modules)

看看有多少个模块。将shebang改为

#! /usr/bin/python3 -EISs

并说“哇!” : - )

答案 1 :(得分:1)

只有__builtins __:

#! /usr/bin/python2.7 -ESs
print(dir())

=&GT; ['__ builtin ___','__ doc__','__ file __','_ _ 1 ___','__ package __']