On Apr 12, 10:06 am, Kay Schluehr <[EMAIL PROTECTED]> wrote:
> On 12 Apr., 14:44, Christian Heimes <[EMAIL PROTECTED]> wrote:
>
> > Gabriel Genellina schrieb:
>
> > > On the last line, str(x), I would expect 'abc' - same as str(x, 'ascii')
> > > above. But I get the same as repr(x) - is this on purpose?
>
> > Yes, it's on purpose but it's a bug in your application to call str() on
> > a bytes object or to compare bytes and unicode directly. Several months
> > ago I added a bytes warning option to Python. Start Python as  "python
> > -bb" and try it again. ;)
>
> > Christian
>
> And making an utf-8 encoding default is not possible without writing a
> new function?

I believe the Zen in effect here is, "In the face of ambiguity, refuse
the temptation to guess."  How do you know if the bytes are utf-8
encoded?

I'm not sure if str() returning the repr() of a bytes object (when not
passed an encoding) is the right thing, but it's probably better than
throwing an exception.  The problem is, str can't decide whether it's
a type conversion operator or a formatted printing function--if it
were strongly one or the other it would be a lot more obvious what to
do.


Carl Banks
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to