[Python-ideas] Making colons optional?
yaogzhan at gmail.com
Sun Feb 8 07:47:14 CET 2009
On 6-Feb-09, at 3:16 PM, Georg Brandl wrote:
> Riobard Zhan schrieb:
>> On 5-Feb-09, at 7:31 AM, Steven D'Aprano wrote:
>>> Riobard Zhan wrote:
>>>> - I noticed a strong tendency to forget colons by new users of
>>>> Python in a second-year computer science undergraduate course. The
>>>> students seemed not getting used to colons even near the end of the
>>>> course. I guess it is probably because they learn Java and C first,
>>>> both of which do not have colons. What other languages do you know
>>>> that require colons?
>>> Pascal uses colons, but not for the exact same purpose as Python.
>>> Both languages use colons in similar ways to it's use in English. In
>>> particular, Python uses colons as a break between clauses: larger
>>> than a comma, smaller than a period.
>> Pascal is my first language. It has been some years ago, so I cannot
>> remember the detail now. I checked wikipedia and did not find colons
>> are used after if's. Not sure if you mean declarations? If so, I
>> think that is what we are discussing here; Java and C also use colons
>> in switch/case statements. AFAIK, Python is quite unique in requiring
>> trailing colons after if's, for's, and function/class definitions.
> Python is also quite unique in using indentation to delimit blocks,
> so I'm not sure what point you're trying to make.
Sorry, I did not make it obvious. Please let me re-state it more
I pointed out that Python is quite unique in requiring trailing colons
because I don't think there are any other popular languages do so.
Therefore I did not understand why you mentioned Pascal. I was trying
to figure out if you mean Pascal uses colons in declarations.
> I think it's a good indicator for optional syntax if you can formulate
> new rules for PEP 8 that state when to use it. In the case of colons,
> you'd have to either forbid or mandate them; I'd be at a loss to find
> another consistent rule. So, making them optional is pointless; we
> should either keep them or remove them. And removing is out of the
> Applying that indicator to semicolons, there is a clear rule in PEP 8
> that states when to use them: to separate two statements on one line.
I thought semicolons and multiple statements on one line are
discouraged in PEP 8. Did I miss something? :|
> However, the only person around here whose
> itches alone, in the face of a wall of disagreeing users, can lead to
> a change in the language, is Guido.
Agreed. That's what BDFL means.
I'm not trying to impose my itches on you. I'm not the BDFL. I'm
explaining why I think omitting colons makes Python more elegant.
> Yes, I have read all those remarks about semicolons.
Thanks very much! I thought you ignored them before. I apologize :)
> What you all fail to recognize is that the majority of Python users
> like the colons, and wouldn't program without them.
I doubt it. Would you not program other languages because they do not
have colons? Do you really think the majority of Python users care
about colons that much? I bet they will never notice if there is any
colons missing in a piece of Python code if colons are made optional.
More information about the Python-ideas