A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2014-January/131524.html below:

[Python-Dev] PEP 460: allowing %d and %f and mojibake

[Python-Dev] PEP 460: allowing %d and %f and mojibakeGuido van Rossum guido at python.org
Tue Jan 14 18:58:32 CET 2014
On Tue, Jan 14, 2014 at 7:59 AM, Guido van Rossum <guido at python.org> wrote:
> Here's an example of what I mean:

I sent that off without proofreading, and I also got one detail about
asciistr() wrong. Here are some corrections.

> def spam(a):
>     r = asciistr('(')
>     if a: r += a.strip()
>     r += asciistr(')')
>     return r
>
> The argument must be a string.

Or a bytes object. And the point is that the return type should be the
same as the argument type.

> If I call spam(''),

or spam(b'')

> a's type is never concatenated with r, so the
> return value is an asciistr.

Actually, Nick explained that asciistr() + asciistr() returns str, so
this would be accidentally correct if called with '', but wrong
(returning a str instead of a bytes) if called with b''.

> To fix this particular case, we could
> drop the "if a:" part. But it could be more significant, e.g. it could
> be something like "if a contains any digits". The general fix would be
> to add
>
>     else: r += a[:0]
>
> but that's still an example of the awkwardness that asciistr() is
> trying to avoid.

This is still valid.

-- 
--Guido van Rossum (python.org/~guido)
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4