Мне было интересно, что делает оператор + = в python. Для чего он используется и почему я его использую?Что такое + = среднее значение на python и почему я должен его использовать?
ответ
a += b
похож:
a = a + b
Он также работает с другими основными признаками, например:
a *= b
подобен:
a = a * b
Другие использования для строки, str + = 'defg' - это так же, как ул = СИЛ + «» DEFG
str = 'abc'
str += 'defg'
print(str)
'abcdefg'
Это известно как дополненной уступки, и это не свойственно языку Python. Преимуществом является не только сохранение набора текста. Существует вычислительное преимущество, так как x+=1
оценивает x
только один раз x=x+1
оценивает x
дважды. См. https://docs.python.org/2/reference/simple_stmts.html#augmented-assignment-statements
Как многие указали, x += y
похож на x = x + y
.
Одна из отличительных отличий заключается в том, что оператор +=
является «на месте». Итак, x += y
на самом деле «на месте добавить». Это означает, что он изменяет объект «x».
В то время как x = x + y
добавляет значения 'x' и 'y' и сохраняет результат (как новый объект) в 'x', отбрасывая его предыдущее значение. Это становится более важным при работе с объектами, пользовательскими числовыми типами или в любом пользовательском классе, где поведение может быть изменено внутренне.
+
вызывает метод __add__()
объекта.
+=
звонки __iadd__()
.
(Это может стать более сложным, с __radd__
и т.д., но я замалчивая, что на данный момент.)
Одна хорошая причина для использования +=
является: в зависимости от типа объекта, x += y
могут быть оптимизированы в конкретных случаях , но x = x + y
должен создать новый объект для переустановки на «x».
'x + = y' является сокращением для' x = x + y'. Вы не можете беспокоиться о том, чтобы выполнить поиск в Google на «операторы python»? –
Зачем мне это нужно? –
Поскольку таким образом вам не нужно повторно вводить имя первой переменной, что означает меньшее количество ввода текста и меньшее количество шансов совершить тупая ошибка (то есть, что бы вы хотели ввести 'x1 = x1 + y1', но вместо этого вы набрали' x1 = y1 + y1'? Вы можете даже не заметить, а затем потратить часы или дни, отслеживая ошибку.) –