__setslice__
ist veraltet - Sie sollten __setitem__
mit einem Slice-Argument verwenden.
Beachten Sie, dass je die Python documentation, Scheiben können nur in den folgenden syntaktischen Formen geschehen: a[i:j:step]
, a[i:j, k:l]
oder a[..., i:j]
. Die Doppelpunkt-basierte Syntax wird verwendet, um ein einzelnes Slice-Objekt zu definieren, aber wie das zweite Beispiel zeigt, können Sie mehrere Slice-Argumente haben (sie werden als Tupel von Slices übergeben).
Hier ist ein Beispiel, das druckt das key
Argument, seine Form zu sehen:
>>> 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))
Welche vier Argumente wollen Sie passieren? – cyroxx