人工智能(python)开发 —— 模块 (module)



一、模块的概念

1、模块的定义

        模块是一个包含有一系列变量,函数,类等组成的程序组
        模块是一个文件,模块文件名通常以.py结尾

2、模块的作用

        让一些相关的变量、函数、类等有逻辑的组织在一起,让逻辑结构更加清晰
        模块中的变量、函数和类等可供其他模块或程序调用

3、模块的分类

        a、内置模块(builtins):在解析器的内部可以直接使用
               builtins,sys,time,itertools ,math  ...
        b、标准库模块:安装python时已安装具可直接使用
                random,datetime,os,xml ...
        c、第三方模块(通常开源):需要自己安装
        d、用户自己编写的模块(可以作为其他人的第三方模块)

4、模块化编程的优点

        a、有利于多人开发
        b、使代码更加易于维护
        c、提高代码的复用率
        d、模块化编程有助于解决函数名和变量名冲突问题

二、模块的导入

1、import 语句

语法
        import 模块名1 [as 模块新名1], 模块名2[as 模块新名2], ....
作用
        将一个模块整体导入到当前模块中
示例

        import math            # 导入数学模块
        import sys, os          # 导入sys和os模块
        import copy as cp

属性用法
        模块名.属性名

math.factorial(5)    # 求5的阶乘

2、from import 语句

语法
        from 模块名 import 模块属性名 [as 属性新名1], 模块属性名2 [as 属性新名2]
作用
        将某模块的一个或多个属性导入到当前模块的作用域
示例

from math import pi
from math import sin
from math import factorial as fac

3、from import * 语句

语法
        from 模块名 import *
作用
        将某模块的所有属性导入到当前的模块
示例

from math import *
s = sin(pi/2)
print(factorial(10))

三、模块的加载和执行

1、import 语句搜索模块的路径顺序

        a. 搜索程序运行时的路径(当前路径)
        b. sys.path 提供的路径
        c. 搜索内置模块

2、PYTHONPATH环境变量

        此环境变量的值会在python3的解析器启动时自动加载到sys.path列表中

3、加载自定义模块方法

        a、方法1
                把自定义的模块和运行的代码放在同一个目录下
        b、方法2
                在运行的代码中追加sys.path.apend(“指定自定义的模块路径”)
        c、方法3
                和内置模块放到一起(不建议)
        d、方法4
                配置当前终端的环境变量

$ export  PYTHONPATH=$PYTHONPATH:/home/xxx/指定自定义的模块路径
$ printenv
注: Linux/Unix 用命令printenv来查看所有的环境变量,export仅作用于当前的终端

4、模块的加载过程

        在模块导入时,模块所有语句会执行
        如果一个模块已经被导入,则再次导入时不会重新执行模块内的语句

5、模块的重新加载

        通过imp模块的reload属性重载指定模块

import mymod       # 自定义的模块
import imp         # 导入imp库
imp.reload(mymod)  # 重新加载已经加载过的mymod 模块

6、模块被导入和执行的过程

        a. 先搜索相关路径找模块(.py文件)
        b. 判断是否有此模块对应的.py文件,如果.pyc文件比.py文件新,则直接加载.pyc文件
        c. 否则用模块.py 文件生成.pyc并加载执行

7、模块的编译 compile

                    编译                           解释执行
mymod.py   ----->  mymod.pyc   ------->     python3

四、补充

1、dir 函数

        dir([对象])   返回一个字符串列表
作用
        a、如果没有参数调用,则返回当前作用域内所有变量的列表
        b、如果给定一个对象作为参数,则返回这个对象的所在变量(属性)列表
                1) 对于一个模块,返回这个模块的全部变量
                2) 对于一个类对象,返回类对象的所有变量,并递归基类对象的所有变量
                3) 对于其它对象,返回所有变量、类变量和基类变量

五、附录

        人工智能(python)—— 目录汇总


猜你喜欢

转载自blog.csdn.net/qq_27297393/article/details/80751944
今日推荐