首先介绍
模块的三种来源
1.内置的
2.第三方的
3.自定义的
四种表现形式
1.py文件
2.共享库
3.文件夹(一系列的模块结合体)
4.c++编译的 链接到python的内置的
什么是包
他是一系列模块文件的结合体,表现得形式就是一个文件夹
该文件夹内部通常会有一个__init__.py文件
包的本质还是模块
首次导入包:
先产生一个执行文件的名称空间
1,创建包的下面的__init__.py文件的名称空间
2,执行包下面的__init__.py文件中的代码 将产生的名字放入包下面的__init_.py文件名称
3,执行文件中拿到一个指向包下面的__init__.py文件名称空间 的名字
在导入语句中.号的组边肯定是一个包(文件夹)
当你作为包的设计者来说
1.当模块功能特别多的情况下 应该份文件管理
2.每个模块之间为了避免后期模块开名字的问题 你可以使用相对导入就是利用.的形式
站在包的开发者 如果使用绝对路径来管理自己的模块的话name他只需要永远的以包的路径为基准来导入米开
站在包的使用者来说 你必须将包所在的那个文件夹路径添加到system path中(******)
在python2 如果要导入包 name 报的下面必须要有init文件 不然就会报错
在python3 如果要导入包 包的下面 有没有这个 init文件都不会报错
提示 当你在删除成旭的时候 千万不要随意删除__init__.py文件