python和其他语言大不相同的是,python具有自己的‘’python风格‘’
如在python中的len(collection)在其他语言中可能是collection.len( ).
这种设计思想完全体现在python的数据模型上,而数据模型所描述的API为使用最地道的语言特性来构建自己的对象提供了工具。
简单说就是数据模型规范了这门语言(python)自身构建模块的接口,这些模块包括序列、迭代器、函数等等。数据模型就好比是对python框架的描述。
API是什么? https://segmentfault.com/q/1010000012531371 这里有介绍。
不管在哪种框架下写程序,都会花费大量时间实现被框架本身调用的方法。python解释器在碰到特殊的句法时,会使用特殊方法去激活一些基本的对象操作。(这里的特殊方法就是两个下划线开始和结束,例如 __init__,也称双下方法 dunder-method)
比如P[key]这句语句的背后就是__getitem__()方法。所以解释器实际上会调用 P.__getitem__(key)。
通过实现特殊方法来利用python的数据模型有2个好处:
1.作为编程的类的用户,用户不必去记住标准操作的各式名称。
2.可以更加方便利用python标准库,避免重复发明轮子。