Każdy wie, że w zadaniach Pythona nie zwraca wartości, prawdopodobnie, aby uniknąć przypisania na if
sprawozdania kiedy zazwyczaj tylko porównanie jest przeznaczony:Przypisanie wartości oświadczenie
>>> if a = b:
File "<stdin>", line 1
if a = b:
^
SyntaxError: invalid syntax
>>> if a == b:
... pass
...
Z tego samego powodu, można podejrzewać, że wiele przypisania w tej samej instrukcji były również błędami składni.
W rzeczywistości a = (b = 2)
nie jest poprawnym wyrażeniem:
>>> a = (b = 2)
File "<stdin>", line 1
a = (b = 2)
^
SyntaxError: invalid syntax
Więc moje pytanie brzmi: dlaczego a = b = 2
prace w Pythonie, jak to działa w innych językach, gdzie instrukcje przypisania mają wartość, jak C?
>>> a = b = c = 2
>>> a, b, c
(2, 2, 2)
Czy to zachowanie zostało udokumentowane? Nie mogłem znaleźć nic na ten temat w dokumentacji instrukcji przypisania: http://docs.python.org/reference/simple_stmts.html#assignment-statements