Todo el mundo sabe que en las asignaciones de Python no devuelve un valor, presumiblemente para evitar asignaciones en if
declaraciones cuando por lo general sólo una comparación tiene por objeto:asignación de valor comunicado
>>> if a = b:
File "<stdin>", line 1
if a = b:
^
SyntaxError: invalid syntax
>>> if a == b:
... pass
...
Por la misma razón, se podría sospechar que múltiples las asignaciones en la misma instrucción también fueron errores de sintaxis.
De hecho, a = (b = 2)
no es una expresión válida:
>>> a = (b = 2)
File "<stdin>", line 1
a = (b = 2)
^
SyntaxError: invalid syntax
lo tanto, mi pregunta es: ¿por qué a = b = 2
obras en Python, ya que funciona en otros idiomas, donde las instrucciones de asignación tienen un valor, al igual que C?
>>> a = b = c = 2
>>> a, b, c
(2, 2, 2)
¿Este acto está documentado? No podía encontrado nada sobre esto en la documentación de instrucción de asignación: http://docs.python.org/reference/simple_stmts.html#assignment-statements