当前位置:首页>python>大模型开发入门第十二讲:Python 模块与包

大模型开发入门第十二讲:Python 模块与包

  • 2026-09-02 19:00:56
大模型开发入门第十二讲:Python 模块与包

上一章我们学习了 Python 错误与异常,让程序更稳定健壮、从容应对运行时错误。本章将学习模块与包,掌握代码复用、避免命名冲突、工程化组织代码的核心方法,从单文件编程迈向模块化、包化开发,为大模型项目工程化架构打下坚实基础。

12.1 模块概述

Python 中以.py 结尾的源文件就是一个模块(Module),模块内可包含变量、函数、类等代码,用于实现某一特定功能。

  • 1、提升代码可维护性,功能拆分更清晰
  • 2、提升代码复用性,一次编写多处调用
  • 3、避免名称冲突,同名变量 / 函数可放在不同模块

12.2 创建模块

模块名区分大小写,不能与 Python 标准模块重名。

# 模块名:my_add.pynum = 100def add(a, b):    """求两个数的和"""    return a + b

12.3 导入模块

Python 提供 4 种导入方式,满足不同使用场景。

12.3.1 全部导入 import

导入模块所有成员,通过模块名。成员名访问,同一模块仅导入一次。

# 导入模块import my_add# 使用模块成员print(my_add.add(1, 2))  # 3print(my_add.num)  # 100# 起别名简化调用import my_add as a1print(a1.add(1, 2))

12.3.2 局部导入 from import

仅导入指定成员,直接用成员名访问;未导入成员不可用,重名成员后导入覆盖先导入。

# 仅导入add函数from my_add import add print(add(1, 2))  # 3# print(num)  # 报错:未导入num# 别名区分重名成员from my_add import num as a1from my_multi import num as m1print(a1)  # 100print(m1)  # 200

12.3.3 全局导入 from import *

导入模块内所有非单下划线开头的成员,简洁但易冲突。

from my_add import *print(add(1, 2))print(num)

12.3.4 模块搜索顺序

导入模块时,Python 按以下路径查找:

  1. 1、当前程序目录
  2. 2、系统 PYTHONPATH 环境变量目录
  3. 3、Python 标准库目录
# 查看模块搜索路径import sysprint(sys.path)# 临时添加搜索路径sys.path.append("./..")

12.3.5 all 控制导入范围

仅对from ... import *生效,限定可导入的成员。

# my_add.py__all__ = ["num", "add"]  # 仅允许导入num和addnum = 100num1 = 200  # 无法被*导入

12.3.6 name 避免测试代码执行

  • 1、文件直接运行:__name__ == "__main__"
  • 2、文件作为模块导入:__name__ == 模块名
# my_add.pydef add(a, b):    return a + b# 仅直接运行时执行测试代码if __name__ == "__main__":    print(add(10, 20))  # 30

12.4 dir () 内置函数

dir()用于查看对象的属性、方法或当前作用域的所有名称。

# 查看模块成员import mathprint(dir(math))# 查看对象成员class MyClass:    def __init__(self):        self.x = 1obj = MyClass()print(dir(obj))

12.5 包概述

包是管理模块命名空间的文件夹,必须包含__init__.py文件,用包名.模块名区分层级,适合管理多个关联模块。

sound/              # 顶级包├── __init__.py     # 包初始化文件├── formats/        # 子包├── effects/        # 子包└── filters/        # 子包

12.6 创建包

  1. 1、新建文件夹作为包,必须添加__init__.py(可空)
  2. 2、在包内编写功能模块
graphic/            # 包├── __init__.py├── circle.py       # 圆形计算模块└── rectangle.py    # 矩形计算模块
# circle.pyPI = 3.1415926def area(radius):    return PI * radius * radius
12.7 导入包

3 种常用导入方式,灵活调用包内模块成员。

12.7.1 全局导入

import graphic.circleprint(graphic.circle.area(10))
12.7.2 导入包内模块
from graphic import circleprint(circle.area(10))
12.7.3 导入模块成员
from graphic.circle import areaprint(area(10))
12.7.4 all 控制包导入

在__init__.py设置__all__,限定from ... import *可导入的模块。

# graphic/__init__.py__all__ = ["circle"]

12.8 常用标准库

Python 自带的内置库,开箱即用,覆盖开发常用功能:

库名
功能
os
操作系统接口
sys
系统参数与函数
time/datetime
时间处理
math
数学计算
random
随机数
json
JSON 处理
re
正则表达式

12.9 引入第三方库

Python 官方库无法满足需求时,使用pip安装第三方库。

12.9.1 pip 常用命令

# 查看已安装库pip list# 安装库pip install 包名# 卸载库pip uninstall 包名# 国内镜像加速(清华源)pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ 包名
12.9.2 PyCharm 可视化安装
  1. 1、打开解释器设置 → 点击「+」
  2. 2、搜索库名 → 点击安装
  3. 3、库会安装到当前项目虚拟环境

12.10 打包自己的库并安装

将自定义包打包,可本地安装或分享使用。

  1. 1、安装依赖:pip install setuptools
  2. 2、新建setup.py配置打包信息
from distutils.core import setupsetup(    name="graphic",    version="1.0",    py_modules=["graphic.circle", "graphic.rectangle"],)
3、执行打包:python setup.py sdist
  1. 4、本地安装:pip install 打包文件路径

本章核心总结

  1. 1、模块:.py 文件即模块,实现代码复用、避免命名冲突
  2. 2、导入:import/from import/from import *,按需选择,__all__控制范围
  3. 3、包:带__init__.py 的文件夹,层级化管理模块
  4. 4、name:区分直接运行 / 模块导入,保护测试代码
  5. 5、库管理:标准库直接用,第三方库 pip 安装,自定义包可打包发布
掌握模块与包,你就能用工程化思路组织大模型项目代码,让项目结构清晰、易于维护、方便协作。

最新文章

随机文章