0%

模块

模块的定义:模块就是一个 py 文件。

模块主要分为三类:

  1. 内置模块,也称 Python 标准库,是 Python 官方已经封装在 Python 解释器中了,大约有 200 多个;
  2. 第三方模块,是一些组织或个人写好的 py 文件,供我们使用;
  3. 自定义模块,也就是我们自己写的 py 文件。

为什么要学习模块:

  1. 开发效率高;
  2. 拿来主义:同内置函数一样,我们只需要把模块拿来用就好,不必深究它的原理;
  3. 减少重复代码:分文件管理,有助于修改和维护。

怎么使用模块:

1
2
3
4
5
6
7
import 导入 将模块中所有内容导入
import lib
lib.a # import使用功能需要.操作

from 模块名 import 功能
from 同一个模块 import a,b,c
from lib import a as aa

导入时发生的事情

  1. 将模块存储到当前名称空间中;
  2. 以模块的名字命名,并开辟空间;
  3. 通过模块名来使用模块中的功能。

同一个模块即便写多次导入, 也只执行一次。

导入顺序:
内存 –> 内置 –> sys.path 列表

模块的两种用法:

  1. 当做普通模块执行
  2. 被当做脚本执行
1
2
if __name__ == "__main__":
pass

在当前文件中执行,__name__ 获取的值是 '__main__'
当前文件被当做模块导入时,__name__ 获取的是当前文件名。

以后要避免(不能这么写)的问题:

  • 循环导入(了解)

import 和 from 的对比:

  • import 全部导入
  • from 指定功能导入
  • import 和 from 都可以支持 as
  • from 会将之前定义同名的覆盖
  • from 可以一行导入多个功能
  • from lib import * 将lib下所有的功能全部导入
  • import 建议一行导入一个模块
  • 推荐是使用 from

模块导入的顺序:

  • 内存,内置,sys.path
1
2
3
sys.path  # *****
sys.path.append() # 添加一个模块查找路径
__all__=['name','read1'] # 控制form import *