The [ ] is called indexing or slicing (or sometimes array/sequence/mapping-like access). The x[idx] = val is called index or slice assigment.
The methods that are responsible how the instance acts when indexed or sliced are:
- __getitem__,
- __setitem__and
- __delitem__.
- (In Python-2.x there is also __getslice__, ... but these are deprecated since python 2.0 - if you don't inherit from a class that uses these you shouldn't need those)
For example (missing any actual implementation, just some prints):
class Something(object):
    def __getitem__(self, item):
        print('in getitem')
    def __setitem__(self, item, newvalue):
        print('in setitem')
    def __delitem__(self, item):
        print('in delitem')
For example:
>>> sth = Something()
>>> sth[10]  
in getitem
>>> sth[10] = 100  
in setitem
>>> del sth[10]  
in delitem