[Python-Dev] ',' precedence in documentation

Fredrik Lundh fredrik at pythonware.com
Sun Sep 14 21:47:19 CEST 2008

C. Titus Brown wrote:

> over on the pygr list, we were recently discussing a mildly confusing
> edit I made:
>    assert 'seq1' in self.db, self.db.keys() 
> This was interpreted by someone as being
>    assert 'seq1' in (self.db, self.db.keys())
> which is very different from the actual meaning,
>    assert ('seq1' in self.db), self.db.keys()
> where 'self.db.keys()' serves as the message to be printed out when the
> assertion fails.  Apart from questions of why I was apparently out to
> confuse people with this edit, the question of ',' precedence came up.
> Looking at
> 	http://docs.python.org/ref/summary.html
> there's no mention of ',' binding and tuple creation vs the other
> operators.

A bare "," is part of the "expression list" syntax; it's not an operator:


You have to look at the statement descriptions to find out whether a 
statement wants an expression or an expression list (e.g. "return" takes 
an expression list, while "assert" takes two expressions, not two 
expression lists).


More information about the Python-Dev mailing list