什么是模块:
1, 使用Python编写的代码(.py文件)
2,已被编译为共享库或DLL的C或C++扩展
3,包好一组模块的包
4,使用C编写并链接到python解释器的内置模块
为什么要有模块:
内存空间是有限的,存放在硬盘里,当需要的时候加载到我的内存
把丰富的功能封装在一个文件里,等用的时候直接导入内存就可以使用
模块的分类:
1,内置模块 : python自带的模块
2,扩展模块 : 别人写好的,但是需要自己安装一下,例如Django等,这些模块大部分都是被承认的, 安装:pip install 模块名
3,自定义模块: 自己写的(登录,日志等)
分模块的原因: 功能独立/防止代码过长
import:
模块的创建:
如果想把py文件当做模块,取名需要符合变量的命名规范
导入模块时,pycharm的报错提醒是不可靠的
导入一个模块,就是import + 文件名(不带.py)
模块的导入:
模块导入的过程做了哪些事?
相当于执行了这个被导入的py文件
模块只能被导入一次,不重复导入
原因: 内存中所有被导入的模块都会存储在sys.modules字典中,这个字典的key是这个模块的名字,value是这个模块的内存地址,模块导入后,可以直接使用这个模块中的函数和变量 模块名.函数名 模块名.变量名
模块的命名空间:
每一个模块的导入都会创建一个属于自己的命名空间
在导入模块的时候发生了什么:
1,创建一个属于这个模块的命名空间
2,执行这个模块中的代码
3,创建一个用来调用这个模块命名空间中的名字
4,把导入的模块和内存空间存到sys.modules中
模块的重命名:
可以给导入的模块重命名,重命名后新的名字会出现在内存空间中来作为模块的引用,但是原模块名就不能再文件中使用了
起名格式: import *** as **
模块名非常长,或者功能相同模块不同的时候,可以使用模块的重命名
导入多个模块:
1,导入模块尽量写在文件最开始
2,顺序: 先导入内置的,再导入扩展的,最后是自定义
3,导入多个模块,可以import 模块名,模块名,模块名.... 但是不建议这样使用
未完待续...