一、模块化编程
模块程序设计理念
程序持续复杂化,函数和类更加多了,模块诞生了,模块的叠加使用产生了包。
标准库模块:random,math,time
为什么需要模块化编程,模块便于后期的重复使用。
优势
-
便于分解任务
-
代码的复用
-
可维护性强
模块化编程的流程
-
设计API,进行功能描述
-
编码实现功能
-
编写测试代码
-
使用私有函数实现不被外部客户端调用的模块函数
API 使用来描述模块中提供函数和类的功能描述和使用方式描述。
模块导入import
import 模块名,可叠加
from … import
导入的本质是对象
import 导入的是模块,from import 导入的是一个函数或者一个类。
import加载底层原理
动态导入可以使用importlib
一个模块无论导入多少次,在整个解释器进程内有且仅有一次实例对象。
包
包的概念
当一个项目中有很多个模块时,用包去封装,类似于文件夹。
导入包
import 包名
from 包 import 模块
导入包的本质是导入了包的__init__.py文件。
三、_sys.path 和模块搜索路径
寻找顺序
-
内置模块
-
当前目录
-
程序的主目录
-
pythonpath 目录
-
标准三方库
-
.pth文件内容
-
sys.path.append() 临时添加目录
#测试sys.path
import sys
print(sys.path)
可以在环境变量中设置
.pth文件的写法
在site-package目录下添加.pth文件,并在文件中填写内容。