Marc-Andre Lemburg <[EMAIL PROTECTED]> added the comment:

On 2008-06-11 11:32, Nick Coghlan wrote:
> Nick Coghlan <[EMAIL PROTECTED]> added the comment:
> 
> As far as I am concerned, the implementation of PyObject_Unicode in
> object.c has a bug in it: it should NEVER be retrieving __unicode__ from
> the instance object. The implementation of PyObject_Format in abstract.c
> shows the correct way to retrieve a pseudo-slot method like __unicode__
> from an arbitrary object.

The only difference I can spot is that the PyObject_Format() code
special cases non-instance objects.

> Line 482 in object.c is the offending line:
>       func = PyObject_GetAttr(v, unicodestr);
> 
> Fix that bug, then add a __unicode__ method back to Exception objects
> and you will have the best of both worlds.

I'm not sure whether that would really solve anything.

IMHO, it's better to implement the tp_unicode slot and then
check that before trying .__unicode__ (as mentioned in the comment
in PyObject_Unicode()).

_______________________________________
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue2517>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to