学了什么能解决什么问题

Python 的运算符重载是很多人卡在"能写代码但写不出 Pythonic 代码"的关卡。你能用类封装数据,也能写方法,但遇到别人用 obj[key]、for x in obj、len(obj) 这种方式操作自己的类时,往往不知道背后是什么机制,更没法自己实现。这门课专门补这个缺口:搞清楚双下划线方法(dunder method)与运算符之间的对应关系,掌握索引访问、迭代协议、长度计算这些高频场景的写法。

它解决的核心问题不是"运算符重载是什么",而是"什么时候该重载、怎么重载才能符合 Python 的约定"。很多初学者知道要写 __getitem__,但搞不清它与 __setitem__、__delitem__ 的分工,或者在实现迭代器时混淆了 __iter__ 和 __next__。课程从概念切入,然后立刻用三个实例把这三个最容易混的点拆清楚,让你不仅知道怎么写,还知道为什么要这样写。

适合什么基础,建议先看哪块

你需要已经掌握 Python 类的基本写法——能定义属性、写方法、理解 self 的含义。如果你还没用过字典的 [] 索引,或者没写过简单的迭代循环,建议先补这两块再来看这门课,否则 dunder 方法的触发时机会让你困惑。课程的前两讲是概念和全景预览,各不到十分钟,可以快速建立框架感;第三讲开始进入实例,建议从索引分片那讲看起,因为它最贴近你日常用的字典和列表行为,理解成本最低。迭代那讲时间最长,内容也最完整,放在最后消化比较合适。

资料包里配有 100 个图解加 500 条笔记,不是用来通读的,而是用来对照练习时查漏补缺的。看完每个实例后,去笔记里找对应的那几条 dunder 方法说明,确认自己的理解和课程的一致性。

学完能做什么,资料怎么配合

学完后你应该能独立完成三件事:给自己的类加上 obj[key] 式的索引访问(读和写分开实现),让类支持 for 循环迭代,以及正确使用 len() 返回容器长度。这些都是构建自定义集合类、数据包装器的基础能力,也是后续学习装饰器、描述符等高级特性的铺垫。资料包里的图解主要帮你建立"运算符→dunder 方法"的映射记忆,笔记则补充了各方法的边界条件(比如索引越界该抛什么异常、迭代器用完之后该怎么处理),建议做练习时把笔记翻出来对照着写,而不是只看不练。

课程目录

1 本人全部视频课程总体介绍 (09:35)
2 100个图解+500条笔记快速浏览 (03:17)
3 运算符重载概念 (09:42)
4 Python支持的运算符重载快速预览 (08:03)
5 实例1:索引和分片运算符重载 (12:46)
6 实例2:索引赋值运算符重载 (07:16)
7 实例3:迭代运算符重载 (23:11)