python的模块与包

python的模块与包

1、模块

1)模块是在代码量变得相当⼤了之后,为了将需要重复使⽤的有组织的代码放在
⼀起,这部分代码可以被其他程序引⽤,从⽽使⽤该模块⾥的函数等功能,引
⽤的过程叫做导⼊(import)
2)在python中,⼀个⽂件(以“.py”为后缀名的⽂件)就叫做⼀个模块
3)导⼊模块的写法:
    ❖ ⽅法⼀:import modul1[,module2…[,moduleN]]
    ❖ ⽅法⼆:from module import <name[,name2,….[,nameN]]>

2、模块分类

1)系统内置模块
    sys、time、json模块等等;
2)第三⽅的开源模块
    通过pip install进⾏安装,有开源的代码
3)⾃定义模块
    ⾃⼰写的模块,对某段逻辑或某些函数进⾏封装后供其他函数调⽤;不要和系统内置的模块名称重复。

3、模块的使用

1)系统内置模块
     Python安装好之后⾃带的⼀些⾮常有⽤的模块 (sys,os,time,json模块
等)
2)第三⽅开源模块
    * 是通过包管理⼯具pip完成的。必须先知道该库的名称,可以在官⽹或者pypi
    上搜索,⽐如MySQL驱动程序,Web框架Flask,科学计算Numpy等
    * NumPy(Numerical Python) 是 Python 语⾔的⼀个扩展程序库,⽀持⼤量的维
    度数组与矩阵运算,此外也针对数组运算提供⼤量的数学函数库
    * 安装:pip install numpy

3)⾃定义模块
    * ⾃定义模块是⾃⼰写的模块,对某段逻辑或某些函数进⾏封装后供其他函数调⽤。
    * 模块由变量,函数,或类组成
    * 举例:
        ❖ 创建⼀个模块 baidu.py
        ❖ 创建⼀个调⽤模块 index.py

    ❖ 注意点1:使⽤关键词“import + 模块名称” 导⼊某⼀个模块
    ❖ 注意点2:同⼀个模块不管你执⾏了多少次“import”,只会被导⼊⼀次
    ❖ 注意点3:import 应该被放在代码的顶端
    ❖ 注意:⾃定义模块的名字⼀定不能和系统内置的模块重名,否则将不能再导⼊系统的内置模块。例如,⾃定义了⼀个sys.py模块后,那系统的sys模块就不能使⽤
 import sys
 print("调⽤了sys模块")
 for i in sys.argv:
 print(i)

4、导⼊模块

❖ import 模块名 :引⼊⼀个完整的模块
❖ from <模块名> import <⽅法|变量|类> :引⼊模块中的⼀个或多个指定部分
❖ from <模块名> import * :导⼊模块⾥⾯的所有的函数,变量

❖ 区别:
    ❖ import:导⼊模块,每次使⽤模块中的函数,都要是定是哪个模块
    ❖ from…import * :导⼊模块,每次使⽤模块中的函数,直接使⽤函数就可以了(因为已经知道该函数是那个模块中的了)

5、作⽤域

1)搜索路径
2)当你导⼊⼀个模块,Python 解析器对模块位置的搜索顺序是:
    ❖ 当前⽬录
    ❖ 如果不在当前⽬录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个⽬录
    ❖ 如果都找不到,Python会察看默认路径。UNIX下,默认路径⼀般为/usr/local/lib/python/
3)模块搜索路径存储在 system 模块的 sys.path 变量中。变量⾥包含当前⽬录,PYTHONPATH和安装过程决定的默认⽬录。