Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 +=와 =+ 연산자 차이점 완벽 가이드

+= 연산자란 무엇인가?

파이썬에서 += 연산자는 object.__iadd__() 함수의 문법적 설탕(syntactic sugar)입니다. 공식 파이썬 문서에 따르면 다음과 같습니다.

"이 메서드들은 증강 산술 할당(+=, -=, *=, @=, /=, //=, %=, **=, <<=, >>=, &=, ^=, |=)을 구현하기 위해 호출됩니다. 이 메서드들은 가능한 한 연산을 제자리(in-place)에서 수행하여(self를 직접 수정) 그 결과를 반환해야 하며, 반환값은 self일 수도 있고 아닐 수도 있습니다."

예제 코드

다음과 같은 코드를 실행하면 −

a = 5
b = 10
a += b
print(a)

출력 결과

아래와 같은 결과를 얻게 됩니다.

15

위 예제에서 변수 a는 새로운 객체를 생성하는 것이 아니라 기존 객체가 제자리에서 직접 수정되었습니다. 리스트(list)처럼 가변(mutable) 객체의 경우 +=는 객체 자체를 변경하기 때문에 성능 면에서 유리할 수 있습니다. 관련 내용은 공식 문서(object.__iadd__)에서 더 자세히 확인할 수 있습니다.

=+ 연산자란 무엇인가?

반면 =+는 증강 할당 연산자가 아닙니다. a =+ b라고 작성하면 파이썬은 이를 a = (+b)로 해석합니다. 즉, 값 앞에 붙은 +는 단항 연산자(unary operator)로 작동하며, 값 자체를 변화시키지 않습니다. 따라서 결과적으로 a = b와 동일하게 동작합니다.

단항 연산자란 인수가 하나뿐인 연산자(예: +a, -a)를 말하며, 두 개의 인수를 사용하는 이항 연산자(예: a+b)와 구별됩니다.

주의사항

=+를 의도적으로 사용할 일은 거의 없습니다. 대부분의 경우 +=를 쓰려다 오타로 =+를 입력하는 실수이며, 이 경우 변수가 누적되지 않고 덮어씌워져 버그의 원인이 될 수 있습니다. 따라서 코딩 시에는 항상 += 순서로 작성하는 습관을 들이는 것이 좋습니다.