天空岛国际机场的地下二层,有一座足球场那么大的行李处理中心。员工们管这里叫“堆(Heap)大厅”。一个箱子上可以挂好几个标签;而一个标签都不剩的箱子,最后会被清理掉。
Python 的变量和对象正是这样运作的。变量不是装值的盒子,而是挂在对象上的名牌。只要脑子里有这幅图,“连原件一起被改掉的列表”“每调用一次就多一点的默认参数”“所有实例身上都贴着的贴纸”这类 bug 就不再神秘。
从今天起,你就是这个中心的新任标签员。这门课共 10 小时,你将在破解十二起失物案件的过程中,掌握 Python 的对象模型。
| 人物 | 职责 |
|---|---|
| 都美兰班长 | 在行李中心干了 30 年。口头禅是:“箱子只有一个,标签可以有很多个。”每节课开头递给你一张失物报告单,结尾在工作手册里记下要点。 |
| 小钉 | 行李分拣机器人。不爱说话,只用箭头指。它是标签板的吉祥物,会简短地提醒你陷阱和窍门。 |
| 报告人们 | 每节课换一位:旅行社职员、带修学旅行的老师、创业公司的开发者、展会的运输负责人等。 |
| 阶段 | 课次 | 内容 |
|---|---|---|
| 名字与对象 | 1~4 | =、is、可变与不可变、复制、函数参数 |
| 查找名字的方法 | 5~6 | 作用域(LEGB)、闭包 |
| 类也是对象 | 7~10 | 类与实例、双下划线方法、继承与 MRO、描述符 |
| 对象的生命周期与身份 | 11~12 | 引用计数、GC、弱引用、哈希与相等 |
每节课的案子都会结案,所以只挑需要的课看也没问题。不过第 1 课的那幅图在每节课里都会反复用到,建议先看。
sys.getsizeof 的值这类取决于 CPython 实现的内容,都会特别注明。.py 文件执行即可。小钉提示
→ 在标签板上点“下一行”之前,先说出你觉得会变什么。猜对了说明你懂了;猜错了,那个差别就是今天要学的东西。
订阅新课时和新课程通知
本课程新增课时或推出后续课程时,我们会发邮件通知你。
问答
关于本课有任何疑问都可以在这里留言。所有语言版本页面的提问会汇集在一起。