, :
a[i] = b = > a.__setitem__(i, b)del a[i] = > a.__delitem__(i)a[i] = > a.__getitem__(i)
a, b i , i , . :.
>>> class C(object):
... def __setitem__(self, *a):
... print a
...
>>> C()[1] = 0
(1, 0)
>>> C()['foo'] = 0
('foo', 0)
>>> C()['foo':'bar'] = 0
(slice('foo', 'bar', None), 0)
>>> C()['foo':'bar',5] = 0
((slice('foo', 'bar', None), 5), 0)
, :
a[0:1][0][0] = 5
a.__getitem__(slice(0,1)).__getitem__(0).__setitem__(0, 5)
__getitem__ , __getitem__ , __setitem__.
, ,
a.__getitem__(slice(0,1)).__setitem__(0, 5)
, __setitem__ , .