三、自定义模块学习笔记

三、自定义模块学习笔记

2026-02-21
Python基础
type
Post
status
Published
date
Feb 21, 2026
slug
python-custom-module-notes-3
summary
我可以把代码按功能拆分,就像把房间收拾整洁,每个东西都有自己的位置,找起来特别方便!
tags
category
Python基础
icon
password
💡 学习感悟:我可以把代码按功能拆分,就像把房间收拾整洁,每个东西都有自己的位置,找起来特别方便!

1. 创建自定义模块

1.1 模块就是 Python 文件

📝 我的理解:创建模块就像是写工具说明书——把工具(函数)分类整理好,贴上标签(文档字符串),方便别人使用。

1.2 模块文档字符串

📝 我的理解:文档字符串就像是产品说明书——告诉别人这个模块是干什么的,怎么用。

2. 使用自定义模块

2.1 导入同级目录模块


2.2 from 导入

📝 我的理解:使用自定义模块就像是借用朋友的工具——可以整箱借(import 模块),也可以只借某件工具(from import)。

3. 模块的组织结构

3.1 模块变量和常量


3.2 模块函数组织

📝 我的理解:组织模块就像是整理工具箱——常量是标签,函数是工具,分类放好,方便取用。

3.3 模块中的类

📝 我的理解:模块中的类就像是专业设备——不仅提供功能,还能保持状态(如计算器的当前结果)。

4. 模块的 __all__ 变量

4.1 控制导出内容

📝 我的理解__all__ 就像是白名单——告诉 Python,当别人用 from xxx import * 时,只允许导出这些内容。

4.2 私有成员

📝 我的理解:单下划线 _xxx 就像是内部人员通道——不是不能用,但是约定俗成不直接用。

5. 模块的初始化代码

5.1 模块级初始化

📝 我的理解:模块级代码就像是开机自检——导入模块时自动执行,做准备工作。

5.2 延迟初始化

📝 我的理解:延迟初始化就像是按需加载——不用的时候不占用资源,第一次用的时候才准备。

6. 踩坑记录

6.1 模块名冲突

⚠️ 踩坑:不要把自己的模块命名为标准库模块名(如 random.py, json.py, test.py)!

6.2 修改模块不生效

⚠️ 踩坑:修改模块文件后,已导入的模块不会自动更新,需要 reload 或重启解释器!

6.3 循环导入

⚠️ 踩坑:A 导入 B,B 又导入 A,会导致 ImportError!用延迟导入或重构代码解决。

7. 核心知识点整理

7.1 模块开发规范


7.2 命名规范

类型
规范
示例
模块名
小写 + 下划线
my_module.py
常量
大写 + 下划线
MAX_SIZE = 100
函数
小写 + 下划线
def my_func():
大驼峰
class MyClass:
私有成员
单下划线开头
_helper()

7.3 模块开发 checklist

模块名不与标准库冲突
添加模块文档字符串
使用 __all__ 控制导出(可选)
常量用大写命名
私有函数用单下划线开头
添加 if __name__ == "__main__": 测试代码
避免循环导入
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...