Python高级编程(20):python中序列类型的abc继承关系
1 | from Lib import _collections_abc |
我们所有关于序列类型的模块都在abc这个里面,前面也说过python是基于协议开发的语言,我们现在又要谈到我们的鸭子模型了。只要具有相应的魔法函数,它就具有了相应的功能:
如果我们要定制一个不可变的容器,如String,那么代码中就不能有修改容器数据的方法,如__setitem__()
, __delitem__()
;
如果希望定制的容器支持reversed()这个内置函数,那么容器中需定义__reversed__()
方法,从而提供对内置函数reversed()的支持;
在容器中,查询容器”容量”的方法是通过len()这个内置函数来实现,所以容器中需要定义__len__()
方法;
如果希望容器支持读,写和删除功能,那么就要实现对应的方法:__getitem__()
, __setitem__()
, __delitem__()
;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 余思博客!
评论