[python-madrid] Problema con __getattr__

Andrey Antoukh andsux at gmail.com
Thu Apr 12 09:23:22 CEST 2012


Usar oldclass hoy en día debe ser un crimen penal! xD

Andrei. ;)

El 12 de abril de 2012 09:13, Manuel de la Peña <etil15 at gmail.com> escribió:

>
> 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
>



-- 
Andrei Antoukh - <niwi at niwi.be>
http://www.niwi.be/page/about/
http://www.kaleidos.net/A5694F/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"

-- 
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/630de3d8/attachment.html>


More information about the Madrid mailing list