Можно ли инициализировать объекты Python с помощью инструкции следующим образом:
a = b = c = None
Мне кажется, когда я сделал a = b = c = list()
, это вызовет круговую проблему с подсчетом ссылок.
Нет. Это эквивалентно:
c = list() b = c a = b
Нет проблем. Почему вы думали, что будет проблема?
В вашем коде нет циклов, и даже если бы они были, сборщик мусора Python мог бы обрабатывать круговую ссылку, поэтому вам никогда не придется беспокоиться об этом.
Однако ваш код имеет другую (возможную) проблему: все три переменных указывают на один и тот же список. Это означает, что изменение, например, a, также изменит b и c (где "меняя" я имею в виду вызов мутирующей операции, например, например append
. Переопределение переменной не повлияет на другие переменные).
Да, вы можете это сделать. В вашем коде нет круговой ссылки, и даже если бы это было так, это не вызовет никаких проблем, поскольку у Python есть сборщик мусора, который правильно обрабатывает циклы.