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

Felipe Lerena felipelerena en gmail.com
Mie Mayo 7 16:35:05 ART 2014


Hola,

(Para que "algunos" me dejen de decir Troll mando una pregunta de python a
la lista de python)

Estaba laburando una feature de Ojota y me acordé de algo que ya me topé
una vez y que me habia parecido horriblemente mal manejado por python:
cuando hago un override de __get_item__ puedo recibir 2 tipos diferenetes
como el segundo parametro: o bien un int o un objeto slice...

el resultado de un slice no es un Item sinó una serie de items que
seguramente serán de un tipo diferente del que devuelvo cuando devuelvo uno
solo, por lo que el método recibe 2 tipos de parámetros y devuelve 2 tipos
de parámetros según el contexto


el codigo de cada vez que haces esto queda quedando algo asi como:

    def __getitem__(self, indexes):
         # de movida no sabes como ponerle al parametro, si no sabes
qué nombre ponerle hay algo mal
         if isinstance(indexes, slice):            list_ =
self._list[indexes]            ret = OjotaSet(self.ojota_class, list_)

            #aca devuelvo un objeto del mismo tipo que estoy
sliceando, como una lista que devuelve otra lista en el slice

         else:            ret = self.ojota_class(**self._list[indexes])
            # pero aca devuelvo un objeto de tipo Ojota de los cuales
OjotaSet es un conjunto de los mismos        return ret

(Copypasteado de
https://bitbucket.org/msa_team/ojota/src/6637570c209581612549ebacf5b73edf0e346f79/ojota/base.py?at=default#cl-167<https://bitbucket.org/msa_team/ojota/src/1902f438c617f89d75f445bf681d7a13f9f99063/ojota/base.py?at=default#cl-167>con
comentarios agregados)

esto es horrible o soy yo que soy un hinchapelotas? Hay alguna mejor manera
de manejar esto? como que no hay un __get_slice__? lo fixearon en python 3?

Lipe
twitter @felipelerena
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140507/b5be9067/attachment.html>


More information about the pyar mailing list