Недавно я начал использовать Python, и эта «функция» сбила меня с толку.
Если я хочу поменять значения двух переменных, в JavaScipt я бы сделал следующее:
var a = 0;
var b = 1;
var temp = a;
a = b;
b = temp;
Мне понадобится третья переменная, чтобы временно удерживать одно из значений. Очень простой обмен не будет работать, потому что обе переменные будут иметь одинаковое значение.
var a = 0;
var b = 1;
a = b; // b = 1 => a = 1
b = a; // a = 1 => b = 1
Представьте, что у вас два разных (красных и синих) ведра и две разные жидкости (вода и масло) в них, соответственно. Теперь попробуйте поменять ведра / жидкости (вода в синем и масло в красном ведре). Вы не можете сделать это, если у вас нет дополнительного ведра.
Python занимается этим с помощью «более чистого» способа / решения: Назначение набора .
a = 0
b = 1
print(a, b) # 0 1
# temp = a
# a = b
# b = temp
a, b = b, a # values are swapped
print(a, b) # 1 0
Я думаю, таким образом Python автоматически создает переменные «temp», и нам не о чем беспокоиться.