一、模块
1、一个py文件为一个模块,模块由语句构成,模块中的语句顺序执行。
2、模块化编程的流程:2.1.进行api设计并进行功能描述,对使用的类、函数的功能和使用方式进行描述,通过对象.__doc__可以查看描述内容。2.2、编写代码实现api功能。2.3、在模块中编写测试代码。2.4、使用私有函数实现防止外部调用。当模块被其他模块导入时__name__为模块名,当模块作为程序入口运行时,__name__为‘__main__’,通这个特点可以将源代码里面的测试代码独立处理。
3、模块的导入
3.1、import 模块名 as 别名:导入整个模块,创建了一个对象,在一个线程中无论导入多少次都是同一个对象(实际上只有第一次导入了),本质上是使用内置函数__import__(模块名)创建模块对象。通过a=importlib.import_module(模块名)可实现模块的动态导入。importlib.reload(模块名)实现模块的重载
3.2、from 模块名 import 方法名/类名:导入模块中的方法或类
二、包
2.1、包是将功能相似的模块放在一起,本质上是个含有__inti__.py文件的文件夹。包里面包含模块或子包。
2.2、导入的方式有:import 包.模块、from 包 import 模块、from 包.模块 import 方法\类。import 包实际上是运行__inti__.py(导入这个模块),一般在__inti__.py写批量导入模块的代码。在__inti__.py导入模块与程序中导入模块都是使用同一模块对象。在__inti__.py可以定义__all__=[模块1,模块2,…],通过from 包 import *实现模糊导入模块。
from . import 模块 :.表示包的同级目录,from … import 模块:…表示包的父级目录。
2.3、一般按照以下顺序搜索模块:
内置模块
当前目录
当前主目录
pythonpath环境变量设置的目录
标准库目录
第三方库目录
.pth文件
sys.path.append()临时存的目录
上述目录(除内置模块)会存在sys.path下。
2.4、模块可以在本地发布也可以上传至pypi成为公共资源
11、python模块与包
于 2023-07-18 20:02:32 首次发布