__setslice__
está en desuso - querrá usar __setitem__
con un argumento de división.
Tenga en cuenta que, por el Python documentation, rebanadas sólo se puede hacer en las siguientes formas sintácticas: a[i:j:step]
, a[i:j, k:l]
, o a[..., i:j]
. La sintaxis basada en puntos se usa para definir un único objeto de división, pero como muestra el segundo ejemplo, puede tener múltiples argumentos de corte (se pasan como una tupla de sectores).
He aquí un ejemplo que imprime el argumento key
, para ver su forma:
>>> class Foo(object):
>>> def __setitem__(self, key, value):
>>> print key
>>>
>>> a = Foo()
>>> a[1:1] = 1
slice(1, 1, None)
>>>
>>> a[1:1:1] = 1
slice(1, 1, 1)
>>>
>>> a[1:1, 1:1] = 1
(slice(1, 1, None), slice(1, 1, None))
¿Qué cuatro argumentos quieres pasar? – cyroxx