On Feb 11, 2016, at 09:39, Terry Reedy <tjre...@udel.edu> wrote:
> 
> If trailing _ is allowed, to simplify the implementation, I would like PEP 8, 
> while on the subject, to say something like "While trailing _s on numbers are 
> allowed, to simplify the implementation, they serve no purpose and are 
> strongly discouraged".

That's a good point: we need style rules for PEP 8.

But I think everything that's just obviously pointless (like putting an 
underscore between every pair of digits, or sprinkling underscores all over a 
huge number to make ASCII art), or already handled by other guidelines (e.g., 
using a ton of underscores to "line up a table" is the same as using a ton of 
spaces, which is already discouraged) doesn't really need to be covered. And I 
think trailing underscores probably fall into that category.

It might be simpler to write a "whitelist" than a "blacklist" of all the ugly 
things people might come up with, and then just give a bunch of examples 
instead of a bunch of rules. Something like this:

While underscores can legally appear anywhere in the digit string, you should 
never use them for purposes other than visually separating meaningful digit 
groups like thousands, bytes, and the like.

    123456_789012: ok (millions are groups, but thousands are more common, and 
6-digit groups are readable, but on the edge)
    123_456_789_012: better
    123_456_789_012_: bad (trailing)
    1_2_3_4_5_6: bad (too many)
    1234_5678: ok if code is intended to deal with east-Asian numerals (where 
10000 is a standard grouping), bad otherwise
    3__141_592_654: ok if this represents a fixed-point fraction (obviously bad 
otherwise)
    123.456_789e123: good
    123.456_789e1_23: bad (never useful in exponent)
    0x1234_5678: good
    0o123_456: good
    0x123_456_789: bad (3 hex digits is usually not a meaningful group)

The one case that seems contentious is "123_456_j". Honestly, I don't care 
which way that goes, and I'd be fine if the PEP left out any mention of it, but 
if people feel strongly one way or the other, the PEP could just give it as a 
good or a bad example and that would be enough to clarify the intention.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to