Rozważmy następujący program Python3:Python operator przypisania asocjatywność
a = [0, 0]
i = 0
a[i] = i = 1
print(a, i)
a = [0, 0]
i = 0
i = a[i] = 1
print(a, i)
Spodziewałem wyjściowy będzie:
[0, 1] 1
[1, 0] 1
Ale zamiast tego mam:
[1, 0] 1
[0, 1] 1
Moje pytanie brzmi: czy jest coś w specyfikacji języka Python na temat asocjatywności operatora przypisania, lub jest zachowanie dla a bove przykład niezdefiniowany?
Wszystko, co udało mi się znaleźć, to że wyrażenia są oceniane od lewej do prawej, z tą różnicą, że wartość r jest oceniana jako pierwsza w przypadku przypisania, ale to nie pomaga.
ciekawe, Twój przykład jest bardzo podobny do przykładu w [końcu sekcji] (http://docs.python.org/release/ 3.0.1/reference/simple_stmts.html # przypisania-przypisania). –