Movatterモバイル変換
[0]ホーム
[Python-ideas] Disallow "00000" as a synonym for "0"
Steven D'Apranosteve at pearwood.info
Mon Jul 20 04:01:55 CEST 2015
On Mon, Jul 20, 2015 at 10:38:02AM +1000, Nick Coghlan wrote:> Exactly - the special case here is *dis*allowing leading zeroes for> non-zero integer literals,That's a ... different ... definition of "special case". You're saying that, out of the literally infinite number of possible ints one might attempt to write, *all of them except zero* are the special case, while zero itself is the non-special case. O-kay.I get the argument that allowing people to write 000000000 when they want a int zero is harmless, and the code churn required to prevent that outweighs any benefit gained. The task I created on the tracker has been closed as a "won't fix" or "rejected" (I forget which one), and I'm not going to argue with that. But I did find your perspective above funny enough that I had to reply.But for the record, and this will be my last word on the subject:> since we can't know if they're supposed to be> octal values or not, or if the "b" or "x" was left out of a binary or hex> literal that has been padded out to a fixed number of bits, or if the> decimal point was left out of a floating point literal.Right. So if you see somebody has written 00 as a literal in Python 3, it's *more likely to be an error than deliberate*. E.g. we can align octal or hex numbers using a fixed width string with leading zeroes where needed:nums = [0x00001234, 0x000000A3, 0x00000005, 0x000027F3, 0x00000000, # this is okay 00000000, # breaks the alignment 0000000000, # aligned but where's the X? 0x0000C21D, ]but if you see a plain, unprefixed 0 mixed in there, that smells of an possible error. Even if it isn't an error, to me it hints of an error enough that I'd want to question the code author's intention. "Did you really mean zero, or is that a typo?"Regardless of everything else, to me this is an aesthetic question. Allowing 00 when 01, 02, 03, ... are (rightly!) forbidden feels ugly and a wart. But until and unless somebody actually gets bitten by this in real code, and a typo hides in plain view disguised as zero, I can't honestly say it is outrightly harmful.-- Steve
More information about the Python-ideasmailing list
[8]ページ先頭