- import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。
- sys.argv是一个包含命令行参数的列表。
- sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。
import 语句
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:
import module1[, module2[,... moduleN]
一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?
这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。
这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。
搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码:
import sys
sys.path
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中(导入模块里面需要用到的方法),语法如下:
from modname import name1[, name2[, ... nameN]]
from modname import * (导入全部)
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回:
import sys
print(dir(sys)) #若使用编辑器则需要print打印
['__breakpointhook__', '__displayhook__', '__doc__',...]
包
包是一种管理 Python 模块命名空间的形式,采用"点模块名称"(个人理解由多个模块组成)。
如果包定义文件 init__.py 存在一个叫做 __all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。
from package import *
# 在:file:sounds/effects/__init__.py中包含如下代码
__all__ = ["echo", "surround", "reverse"]
#这样虽然是* 但是只导入了三个模块