基本的序列和映射协议
1.len(self):这个方法应返回集合包含的项数,对序列来说为元素个数,对映射来说
为键值对数。如果__ len __ 返回零(且没有实现覆盖这种行为的__nonzero__),对象在布
尔上下文中将被视为假(就像空的列表、元组、字符串和字典一样)。
2 . getitem(self, key):这个方法应返回与指定键相关联的值。对序列来说,键应该是
0~n -1的整数(也可以是负数,这将在后面说明),其中n为序列的长度。对映射来说,
键可以是任何类型。
3.setitem(self, key, value):这个方法应以与键相关联的方式存储值,以便以后能够
使用__getitem__来获取。当然,仅当对象可变时才需要实现这个方法。
4 . delitem(self, key):这个方法在对对象的组成部分使用__del__语句时被调用,应
删除与key相关联的值。同样,仅当对象可变(且允许其项被删除)时,才需要实现这个
方法。
注意:1.对于序列,如果键值为负整数,应从末尾往前数。2.如果键值的类型不匹配,可能会引发异常。3.对于序列,如果索引的类型是正确的,但是不在允许的范围内,也会引发异常。