python学习--模块

winterSky 2018-08-21 PM 855℃ 0条
  1. import sys 引入 python 标准库中的 sys.py 模块;这是引入某一模块的方法。
  2. sys.argv是一个包含命令行参数的列表。
  3. 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"]
#这样虽然是* 但是只导入了三个模块
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~