Ассоциативность оператора присваивания Python

Рассмотрим следующую программу Python3 :

a = [0, 0]  
i = 0  
a[i] = i = 1  
print(a, i)  

a = [0, 0]  
i = 0  
i = a[i] = 1  
print(a, i)  

Я ожидал, что результат будет:

[0, 1] 1
[1, 0] 1

Но вместо этого я получил:

[1, 0] 1
[0, 1] 1

Мой вопрос: есть ли что-нибудь в спецификации языка Python об ассоциативности оператора присваивания, или поведение для приведенного выше примера undefined ?

Все, что я смог найти, это то, что выражения вычисляются слева направо, за исключением того, что r-значение вычисляется первым в случае присваивания, но это не помогает.

12
задан Ivan Sikiric 12 October 2011 в 09:43
поделиться