目录
一、模块的概念
二、自定义模块
1.创建模块
2.使用import语句导入模块
3.使用from...import 语句导入模块
4.模块搜索目录
4.1模块默认搜索目录
4.2临时添加目录
4.3增加.pth文件
4.4 在PYTHONPATH环境变量中添加
三、以主程序的形式执行
四、python中的包(Package)
1.程序包结构
2.创建和使用包
2.1 创建包
2.2使用包
五、引用其他模块
1.导入和使用标准模块
2.第三方模块的下载与安装
2.1 下载方式
2.2 常用第三方模块
记述python关于模块的知识点。
一、模块的概念
模块就是将一些零散的功能方法封装起来形成的一个部件,类似于汽车的外壳、发动机等由很多个小零件组成的一个大零件。
- python中一个“.py”文件就是一个模块。
- 将特定功能的代码放置在同一个文件作为一个模块,可以方便其他程序导入使用
- 使用模块可以避免函数名或者变量名冲突
二、自定义模块
1.创建模块
- 将相关代码编写在单独的一个文件中
- 将文件命名为“模块名+.py”,模块文件类型必须为“.py”类型
2.使用import语句导入模块
import modulename [as alias]
- modulename:模块的名称
- alias:模块的别名
- 导入后,可以通过“modulename.xxx”调用模块内定义的变量、函数、类等
- 设置别名后可以使用“alias.xxx”嗲用模块内部的变量、函数、类等
- 直接导入模块会运行整个模块的代码指令。
3.使用from...import 语句导入模块
from modelname import functions
- modelname:模块名
- functions:模块内的函数、变量、类等,可以一次性导入多个参数用“,“隔开
- 使用该语句导入后可以直接使用具体的类、函数、变量,不需要再添加模块名作为前缀
- 使用通配符”*“可以一次性导入模块中的所有全部定义
- 导入的定义必须保证在当前命名空间只有一个定义,否则后导入的会覆盖前面导入的
- 导入定义重复时需要使用import导入方式,避免冲突
4.模块搜索目录
4.1模块默认搜索目录
使用import导入模块时,默认会按照固定顺序查找:
- 当前目录(python脚本文件坐在目录)下查找;
- 到PYTHONPATH(环境变量)下的每个目录中查找;
- 到python的默认安装目录下查找;
- 以上目录的具体位置保存在sys的sys.path变量中,可通过sys.path输出(需要先导入sys模块)
4.2临时添加目录
import sys
sys.path.append("modelpath")
通过上述指令将模块路径添加到导入路径中。
4.3增加.pth文件
在python的安装目录下的Lib\site-packages子目录中添加一个.pth文件,将模块目录写道该文件中。
# 注释:xxx模块路径
E:\x\xxx
4.4 在PYTHONPATH环境变量中添加
在我的电脑-属性-环境变量中python的环境变量中添加路径。
添加后需要重新打开python文件才能添加目录。
通过本方法添加的目录可以在不同版本的python中共享。
三、以主程序的形式执行
- 模块可以使用内置的"__name__"变量名检查当前运行该代码的模块名称
- 如果一个模块没有被导入到其他模块,那该模块就是顶级模块,可以在python解释器的顶级模块中运行,此时__name__变量的值为"__main__"
四、python中的包(Package)
包就是在将功能相近的代码模块放在同一个文件夹下,既可以规范代码,也可以避免模块名冲突。需要在模块中放置一个__init__.py文件。
1.程序包结构
项目开发是通过创建多个包用于存放不同类型的文件以使程序结构更为清晰明了。
2.创建和使用包
2.1 创建包
- 通过创建一个文件夹,然后在文件夹中添加"__init__.py"文件即可创建一个包;
- "__init__.py"文件中可以不写任何代码,也可以写一些代码,编写的代码导入包时自动运行;
- "__init__.py"模块的名字对应的是包的名字。
2.2使用包
2.2.1 import包
import 包名.模块名
- 通过”包名+模块命“的形式导入包中的模块
- 包中导入模块是使用模块中的定义时需要使用"包名. 模块名.xxx"的完整形式调用
2.2.2 from ... import包
from package import model
- 从包中导入具体的模块
- 导入后调用时只需要包含具体的模块名,不需要带包名
from package.model import define
- 直接从包中模块导入具体定义
- 调用时直接调用具体定义接口,不需要添加前缀
- 可以使用通配符”*“导入所有定义
五、引用其他模块
1.导入和使用标准模块
python中有很多自带的模块,也就是标准库,导入时直接使用import导入即可。
常用标准库如下:
模块名 | 说明 |
---|---|
sys | 与python解释器及其环境操作相关的标准库。 如sys.path |
time | 与时间处理相关的标准库 |
os | 访问操作系统服务功能的标准库 |
calendar | 提供与日期相关的各种函数的标准库。 |
urllib | 用于读取来自网络、服务器数据的标准库 |
json | 用于使用json序列化和反序列化对象的标准库 |
re | 用于字符串正则表达式使用的标准库 |
math | 提供算术运算的标准库 |
decimal | 用于精确控制运算精度、有效位数、四舍五入等操作的十进制运算 |
shutil | 用于进行高级为念操作,如复制、移动、重命名等 |
logging | 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能 |
tkinter | 使用python进行gui编程的标准库 |
2.第三方模块的下载与安装
第三方模块官方下载网址:http://pypi.python.org/pypi
2.1 下载方式
在python命令行中,使用pip命令直接下载。
pip <command> [modulename]
- command:用于执行的命令。
- install:安装第三方模块
- uninstall:卸载已安装的第三方模块
- list:显示已安装的第三方模块,注可以使用help('modules')查看python中的模块(包括标准库和第三方库)
- modulename:可选参数,指定模块名,当command为install或者uninstall时不能省略
2.2 常用第三方模块
模块 | 说明 |
---|---|
numpy | 用于科学计算的模块 |