day31--模块与包

什么是模块:

  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 模块名,模块名,模块名.... 但是不建议这样使用

未完待续...

  

猜你喜欢

转载自www.cnblogs.com/lianghui-lianghui/p/9320741.html