[pyar] __unicode__ deberia tomar los mismos parametros que unicode() ?
Andres Riancho
andres.riancho en gmail.com
Vie Sep 5 15:38:06 ART 2014
Ok, creo que entiendo. Entonces traduciendo "Objetito" deberia saber
como decodificarse, entonces deberia verse como:
class Objetito(object):
def __init__(self, errors='strict', encoding='utf-8')
self.errors = errors
self.encoding = encoding
def __unicode__(self):
return unicode(self.un_atributo, self.errors, self.encoding)
2014-09-05 15:30 GMT-03:00 fisa <fisadev en gmail.com>:
> 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
> _______________________________________________
> 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
--
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3
More information about the pyar
mailing list