Py3K idea: why not drop the colon?
Ron Adam
rrr at ronadam.com
Sat Nov 11 16:36:43 EST 2006
Georg Brandl wrote:
> Ron Adam wrote:
>> Georg Brandl wrote:
>>> Ron Adam wrote:
>>>> Michael Hobbs wrote:
>>>>
>>>>> The same problem that is solved by not having to type parens around the
>>>>> 'if' conditional, a la C and its derivatives. That is, it's unnecessary
>>>>> typing to no good advantage, IMHO. I was coding in Ruby for several
>>>>> months and got very comfortable with just typing the if conditional and
>>>>> hitting return, without any extra syntax. When I came back to Python, I
>>>>> found that I felt annoyed every time I typed the colon, since it
>>>>> obviously isn't required. The FAQ says that the colon increases
>>>>> readability, but I'm skeptical. The indentation seems to provide more
>>>>> than enough of a visual clue as to where the if conditional ends.
>>>> I'm not sure why '\'s are required to do multi-line before the colon.
>>> Special cases aren't special enough to break the rules.
>>>
>>> Georg
>> A bit of a circular answer.
>>
>> Why the rule? -> So not to break the rule?
>
> You proposed to allow leaving off line continuation '\' only in the
> "if", "for" and "while" headers. This is a special case in my eyes.
I wasn't that specific and it was related to Michael's suggestion the colon
wasn't needed. If the need for '\' was dropped in multi-line block headers, then
the colon would be required for an obvious reason.
If the requirement for line continuations was omitted for "any" block header
starting with a python keyword and ending with a colon, would it still be a
special case? It would be a bit less explicit. Are there situations where you
would want to explicitly limit a block header to just a single line because of
some negative consequence?
I'm asking more for just plain curiosity, and not suggesting this actually be
changed. In practice I don't think its enough of a issue to warrant changing in
python 2.x. Although it just may (coin toss here) be beneficial for python 3k
if extended annotations are implemented.
Ron
>> I would guess this probably is more applicable in this case.
>>
>> Explicit is better than implicit.
>
> Of course, this always applies :)
>
> Georg
More information about the Python-list
mailing list