Оператор присваивает значение в дальнем правом углу каждой цели слева, начиная с в слева. Таким образом, это эквивалентно
t = {}, None
x, y = t
x[y] = t
Итак, t
начинается как кортеж, состоящий из пустого dict
и значения None
.
Далее мы распаковываем t
и присвойте каждую часть x
, а y
: x
связан с пустым dict
, а y
связан с None
.
Наконец, мы можем назначить кортеждо x[y]
, так как мы только что определили x
и y
. Ключ None
добавляется к dict
, на который ссылается x
, и его значением является исходный кортеж. Таким образом, мы заставили x[y]
обращаться к самому x
: цикл!
Python может обнаружить этот цикл, поэтому он показывает dict
как {...}
, вместо того, чтобы пытаться бесконечно расширять егодо {None: ({None: ({None: ...
.