一.模块
1.import 加载的模块四个通用类别
1.使用python编写的py文件
2.已被编译为共享库或者DLL或者C\C++的扩展
3.包好一组模块的包
4.使用c编写并连接到python解释器的内置模块
2.导入模块时python的流程
1.先判断当前导入的模块是否已经导入过
2.如果导入过,不会重新导入该模块
3.如果没有导入过,给导入的模块创建新的名称空间
4.在新创建的名称空间中运行该模块中的代码
5.创建模块的名字,方便后面的引用
3.if __name__ == '__main__'的作用
如果在自己py中运行,__name__ 就是 __main__
如果被其他py导入运行,__name__就是导入模块的名字
这样可以控制在别人导入的时候不会看到你的测试
4.导入模块的规则
1.所有的模块导入都要写在最上面,
2.先引入内置模块
3.再引入扩展模块
4.最后引入自己写的模块
5.导入模块的方式
1.import xxx 导入xxx ,也可以导入xxx中的东西
2.from xxx import yyy 从xxx中导入yyy # 注意重名 重名了用的是后面的
3.from xxx import * 从xxx中导入全部 不推荐,这样写注意名字会不会重名
4.import xxx as x 导入xxx并命名为x
6.自定义模块名注意事项
自己写的模块名千万不要和系统的内置模块重名
二.包
一个表达式 -> 一条语句 -> 语句块 -> 函数 -> 类 -> 模块 -> 包
包就是我们的文件夹,包内可以写很多个模块
包,模块的查找路径:sys.path 随动 跟着你的启动文件所在位置变化
1.绝对导入(推荐)
跟模块一样
2.相对导入
. 表示本层
.. 表示上一层
相对导入要再外面启动