目录
-
模块的作用
-
模块就是包含python定义和声明的文件,文件名就是模块名加.py后缀
使代码结构更清晰
方便管理
可重复利用
模块的搜索路径
-
1、首先查找同名的内建模块
2、 在sys.path中从左道友查找
- 首先是脚本所在目录
- 在环境变量PYTHONPATH中指定的路径列表中依次搜索
- 在python安装路径中搜索
import导入
# aaa.py文件
def aa():
print('aa')
def bb():
print('bb')
ccc = 'ccc'
导入aaa模块
import aaa
aaa.aa() --> 'aa'
aaa.bb() --> 'bb'
aaa.ccc --> 'ccc'
- 只有第一次导入是才执行模块中的代码
- 每个模块都是一个独立的名称空间
首次导入模块,会做三件事
1、为源文件(aaa模块)创建新的名称空间
2、在新的名称空间中执行模块代码
3、创建一个名字(aaa)来引用这个命名空间
from … import …
from aaa import aa
对比import aaa,会将源文件的名称空间’aaa’带到当前名称空间中,使用时必须是aaa.名字的方式
而from 语句相当于import,也会创建新的名称空间,但是将aaa中的名字直接导入到当前的名称空间中,在当前名称空间中,直接使用名字就可以了
还有一种方法是*,导入全部
from aaa import *
可以使用all[]控制导入的方法
__all__['aa'] # 这样在使用*时,就只能导入规定的方法
包
包就是一个包含init.py文件的目录
无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法。并且.左边必须是一个包
sys.path.append('..') # 把上层目录加入搜索路径