개요
이 글에서는 Python 3.x 이상 버전에서 제공하는 인플레이스(in-place) 연산자 중 몇 가지를 살펴보겠습니다.
Python은 operator 모듈을 통해 할당과 계산을 하나의 문장으로 동시에 처리할 수 있는 인플레이스 연산 메서드를 제공합니다. 여기서는 그중 iadd(), isub(), iconcat() 세 가지 함수의 개념과 사용법을 예제와 함께 자세히 알아보겠습니다.
iadd() — 덧셈 후 즉시 할당
iadd() 함수는 현재 값에 더한 뒤 그 결과를 다시 변수에 할당합니다. 우리가 흔히 사용하는 a += b 연산과 동일하게 동작합니다. 다만 문자열이나 튜플과 같은 불변(immutable) 데이터 타입에는 제자리 수정이 불가능하므로, 새로운 객체가 생성된다는 점에 유의해야 합니다.
예제 코드
import operator as op
# iadd()를 사용하여 덧셈 수행
int1 = op.iadd(786, 0)
# 값 출력
print("The value : ", end="")
print(int1)실행 결과
The value : 786
isub() — 뺄셈 후 즉시 할당
isub() 함수는 현재 값에서 뺀 뒤 그 결과를 다시 변수에 할당합니다. a -= b 연산과 같은 역할을 하며, 마찬가지로 문자열이나 튜플 같은 불변 타입에는 제자리 할당이 적용되지 않습니다.
예제 코드
# isub()를 사용하여 뺄셈 수행
int2 = op.isub(57, 34)
print("The value : ", end="")
print(int2)실행 결과
The value : 23
iconcat() — 문자열 연결
iconcat() 함수는 두 번째 문자열을 첫 번째 문자열 끝에 이어 붙입니다. 문자열에 대한 덧셈 연산자(+)와 동일하게 작동합니다.
예제 코드
str1 = "tutorials"
str2 = "point"
# iconcat()을 사용하여 문자열 연결
str1 = op.iconcat(str1, str2)
# 값 출력
print("The string becomes: ", end="")
print(str1)실행 결과
The string becomes: tutorialspoint
마무리
이번 글에서는 Python의 대표적인 인플레이스 연산자인 iadd(), isub(), iconcat()의 개념과 구현 방법을 알아보았습니다. operator 모듈을 활용하면 코드를 더 간결하고 함수형 스타일로 작성할 수 있으며, 특히 functools.reduce()나 반복 처리 로직에서 유용하게 사용할 수 있습니다.