当你进一步的理解这种不适感背后的强大之处的时候,你会被 Python 的设计哲学所折服,这正是建立在 Python 数据模型之上的结果,Python 数据模型的 API ,为我们使用地道的 Python...不管在哪种框架下写程序,都会花费大量的时间区实现那些会被框架本身调用的方法,Python 框架本身也不例外。当你在使用 object[item] 的时候,背后实际上是调用了object....不在乎是通过子类化,还是序列协议实现的。
我们已经可以体会到通过使用特殊方法来利用 Python 数据模型的好处,作为你的类的用户,不必去记住标准操作的各式名称(“怎么得到长度?”...__str__(self):
return ','.join(self.items)
a = MyList()
print(a)
>> 0,1,2,3,4,5,6,7,8,9
三、为什么...背后的原因是 CPython 会直接从一个 C 结构体里读取对象的长度,完全不会调用任何方法。