더북(TheBook)

4.2.3 대입 연산자 조합을 이해한다( +=)

대입 연산자 조합 기능의 전반적인 내용은 1장에서 다루었으니, 이 장에서는 간단하게만 살펴볼 것이다. 대입 연산자(=)는 +, -, /, //, %, **, &, ^, |, <<, >> 연산자와 모두 조합할 수 있다는 것을 다시 떠올려 보자.

연산자 &, |, ^는 각각 'and', 'or', 'exclusive or' 비트 연산자다. 연산자 <<>>는 각각 비트를 왼쪽과 오른쪽으로 옮긴다(bit shift).

이 절에서는 대입 연산자 조합 사용법의 미세한 부분을 일부 다루겠다. 일단 모든 대입 연산자는 낮은 우선순위를 가지며, 마지막에 처리된다.

두 번째로 대입 연산자는 피연산자의 가변 유무에 따라 객체 값 변경 유무를 결정한다. 값을 바로 변경한다는 것은 완전히 새로운 객체를 생성하지 않고 메모리에 이미 존재하는 데이터를 변경한다는 의미다. 이런 연산은 더 빠르며 효율적이다.

정수, 부동소수점 숫자와 문자열은 불변의 성질을 갖는다. 이런 데이터 타입과 함께 사용된 대입 연산자는 객체 값을 직접 바꾸지 않는다. 대신 같은 변수에 완전히 새로운 객체를 생성하여 다시 대입해야만 한다.

예시를 살펴보자.

s1 = s2 = 'A string.'
s1 += '...with more stuff!'
print('s1:', s1)
print('s2:', s2)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.