1 包的定义
包是将模块以文件夹的组织形式进行分组管理的方法
2 包的作用:
将一系列模块进行分类管理,有利于防止名字冲突,可以在需要时加载一个或部分模块而不是全部模块
3 包的加载
第一种
import 包名 [as 包别名]
import 包名.模块名 [as 模块别名]
import 包名.模块名.函数名 [as模块别名]
import 包名.子包名.模块名 [as 模块别名]
·····
导入立即初始化
mypack/
__init__.py
menu.py
games/
__init__.py
contra.py
supermario.py
tanks.py
office/
__init__.py
exec.py
word.py
import mypack 导入整个包是包内的__init__.py被加载
importmypack.games.tanks 逐层寻找tanks.py模块 会初始化两个__init__.py,然后再加载tanks.py模块
第二种
from packageName import moduleName [as newmodule]
from packageName.packagesonName importmoduleName [as newmodule]
from packageName.moduleName import variableName [as newVariable]
from packageName import *
和上面加载的过程一样的,包被加载 [然后模块被加载]
4 __init__.py文件
建包时必须建的文件
1)作用
在包被加载时自动调用
1.在内部填写包的文档字符串
2 加载此包所依赖的一些模块或其他包???
2)__all__属性
(1)作用:
用来记录那些包需要导入
当用from 包 import * 语句导入模块时,只查找__all__属性所列出的模块
__all__ 属性只在from包 import *语句中起作用,也必须写在__init__.py中,加载子包,还有本包的模块
5 包的加载路径
同模块相同,设置方法:
1.可以设置sys.path
2.可以设置PYTHONPATH环境变量
6 包的的加载过程
模块加载过程如下
编译 解释执行
menu.py--------------->menu.pyc------------------>python3