一、模块基础学习笔记
2026-02-21
Python基础
type
Post
status
Published
date
Feb 21, 2026
slug
python-module-basics-notes-1
summary
模块就像是把代码分类装进不同的抽屉,需要时直接打开对应的抽屉,代码管理变得井井有条!
tags
category
Python基础
icon
password
💡 学习感悟:模块就像是把代码分类装进不同的抽屉,需要时直接打开对应的抽屉,代码管理变得井井有条!
1. 什么是模块?
模块是一个包含 Python 代码的文件(
.py 文件),可以被其他程序导入使用。📝 我的理解:模块就像是工具箱——把锤子、螺丝刀、扳手分类放好,用的时候直接拿,不用在一堆工具里翻找。
2. 为什么使用模块?
2.1 代码复用
2.2 代码组织
2.3 命名空间隔离
📝 我的理解:模块就像是姓氏——张伟和李伟都叫"伟",但加上姓氏就不会混淆了。
3. 模块的执行方式
3.1 作为脚本直接运行
3.2 作为模块被导入
📝 我的理解:__name__就像是身份证——直接运行时显示"main",被导入时显示模块名。
3.3 __name__ 的作用
4. Python 标准库模块
4.1 常用内置模块
📝 我的理解:标准库就像是瑞士军刀——Python自带的工具,开箱即用,功能强大!
4.2 标准库速查
模块 | 用途 | 常用功能 |
os | 操作系统 | getcwd(), mkdir(), path.exists() |
sys | 系统参数 | argv, version, exit() |
math | 数学计算 | pi, sqrt(), ceil(), floor() |
random | 随机数 | randint(), choice(), shuffle() |
datetime | 日期时间 | now(), strftime(), timedelta |
json | JSON处理 | loads(), dumps() |
re | 正则表达式 | match(), search(), findall() |
collections | 高级容器 | Counter, deque, defaultdict |
5. 模块搜索路径
5.1 模块查找顺序
5.2 添加自定义搜索路径
⚠️ 注意:临时添加的路径只在当前程序运行期间有效!
6. 踩坑记录
6.1 循环导入
⚠️ 踩坑:A导入B,B又导入A,会导致循环导入错误!解决方案是延迟导入或重构代码。
6.2 模块名冲突
⚠️ 踩坑:不要把自己的文件命名为标准库模块名(如random.py,json.py),否则会覆盖标准库!
6.3 修改模块后未生效
⚠️ 踩坑:修改模块文件后,已导入的模块不会自动更新,需要重新加载或重启解释器!
7. 核心知识点整理
7.1 模块执行流程
7.2 __name__ 判断
当我在某个模块中写了该模块的测试代码,那么当我在其它py文件中导入它时该测试代码会被执行.但是我不想执行,但是我又不想删除,也不想注释,太麻烦了.例如我在模块中写了该模块的测试代码.这时就可以通过这个if __name__ == "__main__":进行判断.
7.3 模块开发需要注意的
- 文件名:全小写,可用下划线(如
my_module.py)
- 避免冲突:不要与标准库模块同名
- 文档字符串:模块开头写清楚功能说明
- 主程序保护:使用
if __name__ == "__main__":
- 最小导入:只导入需要的内容
Loading...
