이 글에서는 파이썬 3.x에서 제공하는 인플레이스(inplace) 연산자의 개념과 활용 방법에 대해 알아보겠습니다.
파이썬은 operator 모듈을 통해 할당과 연산을 하나의 문장에서 동시에 처리할 수 있는 인플레이스 연산 메서드를 제공합니다. 이번 글에서는 그중에서도 ixor(), iand(), ipow() 함수를 중심으로 자세히 살펴보겠습니다.
1. ixor() - 배타적 논리합(XOR) 연산
ixor() 함수는 현재 값에 XOR(배타적 논리합) 연산을 수행한 뒤 그 결과를 다시 할당합니다. 일반적으로 a ^= b 연산과 동일하게 동작합니다.
단, 문자열이나 튜플처럼 값을 변경할 수 없는 불변(immutable) 데이터 타입에는 할당이 이루어지지 않으므로 주의해야 합니다.
예제
import operator as op
# ixor()를 사용한 XOR 연산
int1 = op.ixor(786, 12)
# 결과 출력
print("The value : ", end="")
print(int1)출력 결과
The value : 798
2. iand() - 비트 AND 연산
iand() 함수는 현재 값에 비트 단위 AND(&) 연산을 수행한 후 그 결과를 할당합니다. a &= b 연산과 같은 역할을 합니다.
마찬가지로 문자열, 튜플 등 불변 데이터 타입에는 적용할 수 없습니다.
예제
# iand()를 사용한 비트 AND 연산
int2 = op.iand(57, 34)
print("The value : ", end="")
print(int2)출력 결과
The value : 32
3. ipow() - 거듭제곱 연산
ipow() 함수는 현재 값에 거듭제곱 연산을 수행하고 그 결과를 할당합니다. a **= b 연산과 동일하게 동작합니다.
예제
# ipow()를 사용한 거듭제곱 연산
int2 = op.ipow(3, 2)
print("The value : ", end="")
print(int2)출력 결과
The value : 9
마무리
이번 글에서는 파이썬의 인플레이스 연산자인 ixor(), iand(), ipow()의 사용법과 구현 방법을 알아보았습니다. 이러한 함수들은 할당과 연산을 한 번에 처리할 수 있어 코드를 더욱 간결하게 작성하는 데 유용합니다. 다만 문자열이나 튜플 같은 불변 데이터 타입에는 적용할 수 없다는 점을 기억해 두시기 바랍니다.