[Python-ideas] relaxing keyword usage restrictions

Georg Brandl g.brandl at gmx.net
Fri Sep 9 19:31:59 CEST 2011


Am 09.09.2011 09:48, schrieb Terry Reedy:
> On 9/9/2011 2:04 AM, H Krishnan wrote:
>> Hi,
>> I have read through the comments and the (largely negative) votes for
>> this idea.
>>
>> The main argument against it seems to be readability. I feel the
>> examples I chose were distracting. The intent of the examples was to
>> show the semantics and not to suggest that anyone should write such
>> code.
> 
> The parser has to be ready for and work correctly with the worst horror 
> anyone *could* write.
>    if in in in or and and and:
> 
> One can write totally unreadable code even with the current syntax:
>> if not was is can:
>>     return take
> 
> Except that *is* readable *because* keywords are keywords and 
> identifiers are identifiers. 'if not x is y' implies that x and y should 
> be boolean values and we want them to have opposite values to proceed.
> 
>> One cannot however write readable code such as the following:
>> if yield > principal:
>>     return = yield - principal
> 
> Funny you should choose that example. With a slight change
>    myreturn = yield - principal
> it is legal syntax today with 'yield' interpreted as a keyword. So it 
> cannot be interpreted as an identifier without making Python grammar 
> ambiguous and unparseable with its current parser.

Actually, it isn't: "yield" expressions, like generator expressions, need
to be inside parentheses.  (A rule that's an ambiguousness restriction and
a nice readability helper.)

Georg




More information about the Python-ideas mailing list