[pyar] __unicode__ deberia tomar los mismos parametros que unicode() ?
Andres Riancho
andres.riancho en gmail.com
Vie Sep 5 15:20:44 ART 2014
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
More information about the pyar
mailing list