大家好,我是正在实战各种 AI 项目的程序员晚枫。
为什么修改了列表 A,列表 B 也跟着变了?理解引用和可变性,避免这类 bug!
🔗 引用与身份
共享引用
1 | a = [1, 2, 3] |
值相等 vs 身份相同
1 | a = [1, 2, 3] |
📋 深浅拷贝
浅拷贝
1 | import copy |
深拷贝
1 | import copy |
何时使用
| 场景 | 推荐 | 原因 |
|---|---|---|
| 简单对象 | 切片或构造 | 快速 |
| 嵌套对象 | 深拷贝 | 避免共享 |
| 只读访问 | 无需拷贝 | 节省内存 |
⚠️ 可变默认参数陷阱
1 | # 错误示例 |
🎯 本讲总结
引用与身份:理解 is 和==的区别。
深浅拷贝:copy() vs deepcopy()。
可变默认参数:避免使用可变对象作为默认参数。
📚 推荐教材
《Python 编程从入门到实践(第 3 版)》 | 《流畅的 Python(第 2 版)》 | 《CPython 设计与实现》
学习路线: 零基础 → 《从入门到实践》 → 《流畅的 Python》 → 本门课程 → 《CPython 设计与实现》
🔗 课程导航
💬 联系我
| 平台 | 账号/链接 |
|---|---|
| 微信 | 扫码加好友 |
| B 站 | Python 自动化办公社区 |
主营业务:AI 编程培训、企业内训、技术咨询