Python statements not forcing whitespace is messy?

buffi bjorn.kempen at gmail.com
Sat Sep 15 17:12:35 EDT 2007


On Sep 15, 10:11 pm, "J. Cliff Dyer" <j... at sdf.lonestar.org> wrote:
> buffi wrote:
> > Am I the only one that thinks that python statements should force
> > whitespace before and after them?
>
> > Right now this is not enforced and for an example these statements are
> > valid
>
> > print"hello"
> > "foo"if"bar"else"foobar"
> > for(x,y)in[(1,2),(3,4)]:print(x,y)
> > [(y)for(x,y)in[("foo",2),("bar",4)]if"foo"in(x)]
>
> > ...and so on.
>
> On the other hand, this is just as bad:
>
> [ ( y ) for ( x , y ) in [ ( "foo" , 2 ) , ( "bar" , 4 ) ] if "foo" in (
> x ) ]
>
> And I'd hate to have to remember all of the rules for what can go
> together and what can't, especially when it comes time to debug.  No.
> I don't think it should be forced, but maybe put it in PEP8 or PEP3008.
>
> Also, the only thing I find thoroughly disagreeable in all of that
> mess, is the run-ins involving " characters.  The rest are at least
> clear at a glance what belongs where.
>
> Also, would you require the following?
>
> my_function (swallow='European')
>
> Because that is just an awful use of whitespace.
>
> Cheers,
> Cliff

I believe that having whitespace around the builtin statements, and
having whitespace around everything is pretty different.

There would be no downside whatsoever to enforcing this, except for
backwards incompatibility (which is a rather huge downside but well...
py3k is gonna break everything anyways). There obviously shouldnt be
any limit to the maximum amount of whitespace used around statements
(due to formatting and so on), but allowing stuff like print"hello" is
just horrible.

- Björn Kempén




More information about the Python-list mailing list