Numeric literal syntax
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Tue Sep 2 02:56:24 EDT 2008
On Mon, 01 Sep 2008 22:11:13 -0700, Dennis Lee Bieber wrote:
> On Tue, 02 Sep 2008 13:51:16 +1000, Ben Finney
> <bignose+hates-spam at benfinney.id.au> declaimed the following in
> comp.lang.python:
>
>> This is no more the case than for literal strings:
>>
>> a = "spam" "eggs" "ham"
>>
>> a = "spam", "eggs", "ham"
>>
> But... Literal string still have the " (or ') delimiters around the
> components. Such does not exist for you example with integers.
>
> Consider
>
> a = "spam, eggs", "ham"
> vs
> a = "spam, eggs" "ham"
Quite frankly, I think that it's a stretch to say that leaving out a
tuple delimiter is a problem with whitespace inside numeric literals.
That's hardly unique to whitespace:
atuple = 5,6,7,8
vs
atuple = 5,67,8
Look Ma, no whitespace!
But even if allowing whitespace inside numeric literals did create a new
avenue for errors which never existed before, it is a mistake to only
consider the downside without the upside. In my opinion, that would be
rather like declaring that the syntax for attribute access is a mistake
because you might do this:
x = MyClass()
xy = 4
instead of this:
x = MyClass()
x.y = 4
At some point the programmer has to take responsibility for typos instead
of blaming the syntax of the language. I agree that we should avoid
syntax that *encourages* typos, but I don't believe that allowing
whitespace inside numeric literals does that.
--
Steven
More information about the Python-list
mailing list