¿Cómo anular el operador en Python?

¿Cuál es el nombre del método para anular el operador [] (notación de subíndice) para una clase en Python?

Necesitas usar el método __getitem__

 class MyClass: def __getitem__(self, key): return key * 2 myobj = MyClass() myobj[3] #Output: 6 

Y si va a establecer valores, también necesitará implementar el método __setitem__ , de lo contrario, esto sucederá:

 >>> myobj[5] = 1 Traceback (most recent call last): File "", line 1, in  AttributeError: MyClass instance has no attribute '__setitem__' 

Para sobrecargarlo completamente, también necesita implementar los métodos __setitem__ y __delitem__ .

editar

Casi lo olvido … si quieres emular una lista por completo, también necesitas __getslice__, __setslice__ and __delslice__ .

Todos están documentados en http://docs.python.org/reference/datamodel.html

Estás buscando el método __getitem__ Consulte http://docs.python.org/reference/datamodel.html , sección 3.4.6