[python-madrid] Problema con __getattr__

Manuel de la Peña etil15 at gmail.com
Thu Apr 12 09:13:09 CEST 2012


On Apr 12, 2012 8:54 AM, "Vicente Ruiz" <vruiz2.0 at gmail.com> wrote:
>
> Hola Miguel Ángel,
>
> es una pregunta muy buena :) La verdad es que me ha costado un rato dar
con el problema. Prueba cambiar esto:
>
> class EasyDict: --> class EasyDict(object):
>
> Esto se debe a que en las versiones anteriores a Python 3.x existen 2
tipos de clases: new-style y old-style. Esto desaparece en Python 3, siendo
todas new-style. Puedes leer más sobre el tema aquí:
http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes
>
> Un saludo,
> Vicente Ruiz

Buenas,

Acá van mis 2c, la implementación no es totalmente correcta ya que tiene
los siguientes fallos:

1. Estas devolviendo None cuando el valor no está en el dict. Esto rompe la
interfaz de getattr, lo correcto sería lanzar la excepción AtributeError.
2. No estas llamando al getattr del parental class cosa que es
probablemente recomendable, yo haría algo como:

def __getattr__(self, name):
    try:
        return super(Easydict, self).__geattr__(name)
    except AttributeError:
        if name in self.dict:
            return self.dict [name]
        raise AttributeError

Creo recordar que si era un new class puedes usar super de está forma, pero
no lo he probado por que estoy en el metro : P.

Saludos
>
> El 12 de abril de 2012 08:25, Kiko <kikocorreoso at gmail.com> escribió:
>
>>
>>
>> El 12 de abril de 2012 07:58, Miguel Angel <miguelangel.garcia at gmail.com>
escribió:
>>
>>> Hola!
>>>
>>> Tengo un problema y no sabía muy bien dónde preguntar... No sé si esta
lista se utiliza sólo para las reuniones o las preguntas también tienen
cabida.
>>
>>
>> A priori no hay ningún problema con las preguntas pero la finalidad de
esta lista es un poco de organización de python-madrid, las quedadas y
cosas así.
>>
>> Seguro que muchos de esta lista te podrán responder pero para el futuro
es más adecuado que para las dudas técnicas de python acudas a:
>>
>>  -la lista python-es  (http://mail.python.org/mailman/listinfo/python-es
).
>>  -a python.majibu (http://python.majibu.org/)
>>
>> Donde hay mucha más gente que en esta lista y cuyo objetivo es ese,
resolver dudas técnicas
>>
>> Saludos.
>>
>> --
>> Grupo de usuarios de python ubicados en Madrid
>> http://groups.google.es/group/python-madrid
>> http://python-madrid.es
>> http://twitter.com/#!/python_madrid
>> Para darte de baja del grupo envía un mensaje a
python-madrid+unsubscribe at googlegroups.com
>
>
>
>
> --
> Disponible en:
>
> http://www.vicenteruiz.es/
> http://www.menudoproblema.es/
> Twitter - LinkedIn
>
> --
> Grupo de usuarios de python ubicados en Madrid
> http://groups.google.es/group/python-madrid
> http://python-madrid.es
> http://twitter.com/#!/python_madrid
> Para darte de baja del grupo envía un mensaje a
python-madrid+unsubscribe at googlegroups.com

-- 
Grupo de usuarios de python ubicados en Madrid
http://groups.google.es/group/python-madrid
http://python-madrid.es
http://twitter.com/#!/python_madrid
Para darte de baja del grupo envía un mensaje a python-madrid+unsubscribe at googlegroups.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.es.python.org/pipermail/madrid/attachments/20120412/b9692c5b/attachment.html>


More information about the Madrid mailing list