[pyar] __unicode__ deberia tomar los mismos parametros que unicode() ?
fisa
fisadev en gmail.com
Vie Sep 5 15:30:20 ART 2014
El tema es este: esos parámetros sirven para afectar a cómo se
*decodifica* lo que le pasás a unicode(), cuando eso que le pasás es
algo que tiene que decodificarse. Pero en el caso de __unicode__, el
método ya tiene que devolver algo que sea un unicode, por tanto no
necesita decodificarse y por eso no tendrían sentido los parámetros.
El día 5 de septiembre de 2014, 15:20, Andres Riancho
<andres.riancho en gmail.com> escribió:
> Lista,
>
> Estoy solucionando algunos problemas de UnicodeDecodeError y me
> encuentro con que en una seccion de mi codigo ocurre algo asi
> (simplificado):
>
> print unicode(un_string, errors, encoding)
> print unicode(un_objeto)
>
> La implementacion del objeto, tambien simplificada dice:
>
> class Objetito(object):
> def __unicode__(self):
> return unicode(self.un_atributo)
>
> Entonces... algo que me hubiese gustado es poder hacer esto:
>
> print unicode(un_string, errors, encoding)
> print unicode(un_objeto, errors, encoding)
>
> class Objetito(object):
> def __unicode__(self, errors='strict', encoding='utf-8'):
> return unicode(self.un_atributo, errors, encoding)
>
> Pero python no me deja:
>
>>>> class Objetito(object):
> ... def __unicode__(self, errors='strict', encoding='utf-8'):
> ... return u'%s %s' % (errors, encoding)
> ...
>>>> o = Objetito()
>>>> unicode(o)
> u'strict utf-8'
>>>> unicode(o, errors='ignore')
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: coercing to Unicode: need string or buffer, Objetito found
>>>>
>
> Se ve que por algun lado verifica que si hay parametros como
> errors y encoding, el primer parametro necesita ser un string.
>
> Me imagino algunas soluciones posibles a este problema (como no
> llamar a unicode sino implementar mi propio metodo "as_unicode" y
> pasarle los parametros que quiera), pero la realidad es que no
> entiendo bien el porque de esta limitacion.
>
> Es una limitacion real? Esta solucionado en py3k?
>
> [0] https://docs.python.org/2/library/functions.html#unicode
>
> Saludos,
> --
> Andrés Riancho
> Project Leader at w3af - http://w3af.org/
> Web Application Attack and Audit Framework
> Twitter: @w3af
> GPG: 0x93C344F3
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
--
fisa - Juan Pedro Fisanotti
More information about the pyar
mailing list