[pyar] o bien __get_item__ apesta o yo no entiendo algo

Claudio Freire klaussfreire en gmail.com
Mie Mayo 7 17:16:27 ART 2014


2014-05-07 17:12 GMT-03:00 Claudio Freire <klaussfreire en gmail.com>:
> Si sólo te interesa slicear con iterables o no, podés hacer:
>
> def __getitem__(self, indexes):
>     return getattr(self, '__getitem_%s__' %
> (('scalar','iterable')[hasattr(indexes, '__iter__')],))(indexes)
>
> def __getitem_scalar__(self, index):
>     return self.ojota_class(**self._list[indexes])
>
> def __getitem_iterable__(self, indexes):
>     return type(self)(map(self._list.__getitem__, indexes)) # o
> self.__class__(...) si es una clase old-style


Falta manejar los slices, que me acabo de dar cuenta no son iterables
directamente sino a través de indices(). Bue, pero captás la idea
imagino.


More information about the pyar mailing list