Estoy tratando de implementar la funcionalidad de corte para una clase que estoy creando que crea una representación vectorial.Python: Implementando slicing en __getitem__
Tengo este código hasta el momento, que creo que implementará correctamente la división pero cada vez que hago una llamada como v[4]
donde v es un vector python devuelve un error acerca de no tener suficientes parámetros. Así que estoy tratando de encontrar la manera de definir el método especial getitem
en mi clase para manejar tanto los índices simples como el corte.
def __getitem__(self, start, stop, step):
index = start
if stop == None:
end = start + 1
else:
end = stop
if step == None:
stride = 1
else:
stride = step
return self.__data[index:end:stride]
Nota: para extender tipos órdenes internas como lista o tupla que tiene que implementar '__getslice__' para las versiones 2.X pitón. ver https://docs.python.org/2/reference/datamodel.html#object.__getslice__ – gregorySalvan
@gregorySalvan: ¿No es recurrente ese ejemplo de compatibilidad debajo de esa sección? – Eric
@Eric: No, porque la presencia del segundo colon no pasa '__get/set/delslice__'. Aunque es bastante sutil. – user2357112