[Python-Dev] PEP 515: Underscores in Numeric Literals (revision 3)

Stefan Krah stefan at bytereef.org
Sat Mar 19 14:28:12 EDT 2016

Guido van Rossum <guido <at> python.org> writes:
> So should the preprocessing step just be s.replace('_', ''), or should
> it reject underscores that don't follow the rules from the PEP
> (perhaps augmented so they follow the spirit of the PEP and the letter
> of the IBM spec)?
> Honestly I think it's also fine if specifying this exactly is left out
> of the PEP, and handled by whoever adds this to Decimal. Having a PEP
> to work from for the language spec and core builtins (int(), float()
> complex()) is more important.

I'd keep it simple for Decimal: Remove left and right whitespace (we're
already doing this), then remove underscores from the remaining string
(which must not contain any further whitespace), then use the IBM grammar.

We could add a clause to the PEP that only those strings that follow
the spirit of the PEP are guaranteed to be accepted in the future.

One reason for keeping it simple is that I would not like to slow down
string conversion, but thinking about two grammars is also a problem --
part of the string conversion in libmpdec is modeled in ACL2, which
would be invalidated or at least complicated with two grammars.

Stefan Krah

More information about the Python-Dev mailing list