python 模块基础概念

1、什么是模块?

  【1】模块是一个包含有一系列数据、函数、类等组成的程序组

  【2】模块是一个文件,模块文件名通常以.py结尾.

2、模块的文档字符串

  模块内第一个没有赋值给任何变量的字符中称为模块的文档字符串

 

3、作用?

  【1】 让一些相关的数据,函数,类等有逻辑的组织在一起,使逻辑结构更加清晰

  【2】模块中的数据,函数,类等可提供给其它模块或程序使用

4、模块的分类?

  标准库包含多个内置模块(以C语言编写)https://docs.python.org/zh-cn/3.7/library/index.html

  【1】 内建模块(builtins),或者叫内置模块, 在解析器的内可以直接使用

  【2】标准库模块, 安装python时已安装且可以直接使用。

  【3】第三方模块(通常开源),需要自己安装

  【4】用户自己编写的模块(可以作为其它人的第三方模块)

  【1】【2】一般没什么区别,不需要自己安装。

5、模块的导入

  名字太长,可以用 as 起别名。

  【1】import 语句

      ① 作用: 将某模块整体导入到当前模块中 用法: 模块名.属性名 或 模块名.函数属性名(实参传参)

      ② 语法: import 模块名1 [as 模块新名1], 模块名2 [as 模块新名2], ....

      ③ 示例:

        import math # 导入math模块

             import sys, os 作用: 将某模块整体导入到当前模块中

    ④ 用法:

        模块名.属性名 或 模块名.函数属性名(实参)

  【2】from import 语句

    ① 作用: 将某模块的一个或多个属性导入到当前模块的作用域 

    ② 语法: from 模块名 import 模块属性名1 [as 属性新名1], 模块属性名2 [as 属性新名2], .... 

    ③ 示例: from math import factorial as fac

  【3】from import * 语句

    ① 作用: 将某模块的所有属性导入到当前模块

    ② 语法: from 模块名 import * 

    ③ 示例: from math import *

6、模块的加载过程:

  【1】 在模块导入时,模块的所有语句都会执行

  【2】 如果一个模块已经导入,则再次导入时不会重新执行模块内的语句

7、模块的重新加载

  import xxx

  import imp

  imp.reload(xxx) # 重新加载 xxx 模块

8、导入模块时搜索模块的路径 搜索顺序

  【1】 搜索程序运行时的路径(当前路径)

  【2】 sys.path 提供的路径

    sys.path是一个列表,里面放的都是模块的搜索路径

  【3】 搜索内建模块

9、模块导入和执行的过程:

  【1】 先搜索相关的路径,找到模块名.py

  【2】 判断是否有此模块对应的.pyc文件。如果.pyc比.py文件新,则直接加载.pyc文件

     否则,用 模块.py,文件生成.pyc,并加载执行

10、pyc python的编译

     编译 解释执行

  mymod.py --------> mymod.pyc ----------> python3

11、模块的属性

  【1】__doc__ 属性

      此属性用于绑定模块的文档字符串

  【2】__file__属性

      此属性用于记录模块对应的文件路径名

  【3】__name__属性

      用来记录模块自身名字

      作用:

        ① 记录模块名

        ② 用来判断是否为主模块

      其它说明:

        ① 当此模块为主模块(也就是第一个运行的模块时)运行时, __name__绑定 '__main__'

        ② 当此模块不是主模块时,而是被其它模块导入时,此时 __name__ 绑定模块名

  【4】__all__列表

      用来存放可导出属性的字符串列表。

      当用 from xxx import *语句导入时,只导入 __all__ 列表内的属性

12、模块的隐藏属性

  模块中以'_'开头的属性,在from xxx import * 导入时,将不被导入,通常称这些属性为隐藏属性

 

 

 

 

 

posted @ 2020-12-19 20:01  昱成  阅读(221)  评论(0编辑  收藏  举报