[Python-Dev] PEP 515: Underscores in Numeric Literals
Georg Brandl
g.brandl at gmx.net
Thu Feb 11 02:45:30 EST 2016
On 02/10/2016 11:35 PM, Brett Cannon wrote:
>> Examples::
>>
>> # grouping decimal numbers by thousands
>> amount = 10_000_000.0
>>
>> # grouping hexadecimal addresses by words
>> addr = 0xDEAD_BEEF
>>
>> # grouping bits into bytes in a binary literal
>> flags = 0b_0011_1111_0100_1110
>>
>
> I assume all of these examples are possible in either the liberal or restrictive
> approaches?
The last one isn't for restrictive -- its first underscore isn't between digits.
>>
>> Implementation
>> ==============
>>
>> A preliminary patch that implements the specification given above has been
>> posted to the issue tracker. [11]_
>>
>
> Is the implementation made easier or harder if we went with the Group 2 or 3
> approaches? Are there any reasonable examples that the Group 1 approach allows
> that Group 3 doesn't that people have used in other languages?
Group 3 is probably a little more work than group 2, since you have to make sure
only one consecutive underscore is present. I don't see a point to that.
> I'm +1 on the idea, but which approach I prefer is going to be partially
> dependent on the difficulty of implementing (else I say Group 3 to make it
> easier to explain the rules).
Based on the feedback so far, I have an easier rule in mind that I will base
the next PEP revision on. It's basically
"One ore more underscores allowed anywhere after a digit or a base specifier."
This preserves my preferred non-restrictive cases (0b_1111_0000, 1.5_j) and
disallows more controversial versions like "1.5e_+_2".
cheers,
Georg
More information about the Python-Dev
mailing list