[Python-Dev] ',' precedence in documentation]
Christopher Lee
leec at chem.ucla.edu
Mon Sep 15 20:50:21 CEST 2008
On Sep 14, 2008, at 9:18 PM, Guido van Rossum wrote:
> You don't seem to understand how to read syntax tables. The assert
> syntax is given as "assert expression , expression" and the syntax for
> "expression" doesn't allow a comma unless it's inside parentheses.
> That is all you need here, and that is what Fredrik pointed out. The
> precedence list only applies to expressions, not to other constructs
> like statements. (You might note that it also doesn't list the
> precedence of 'assert'.) The place to reference is
> http://docs.python.org/ref/assert.html .
Thanks. This is such a striking difference from C, where many of us
draw our default language assumptions, that it might be worth
highlighting in the Python docs, e.g. on the expression list page.
Maybe something like <<Note: Python does not define comma as an
operator, but instead just uses it as a separator in expression lists,
function argument lists, and many other contexts. Note also that this
disambiguates precedence: expression operators have higher precedence
than the commas of an expression list. Thus the expression list "x
and y, z" evaluates as "(x and y), z", not "x and (y, z)".>>
Highlighting this would stop people with C backgrounds from assuming
that comma is an operator, like I did. Analyzing the full syntax
table would obviously sort this out, but a lot of people just read the
docs (like I did :-)...
More information about the Python-Dev
mailing list