이 글에서는 Python 3.x 이상 버전에서 제공하는 제자리(In-place) 연산자 중 ixor(), iand(), ipow() 함수에 대해 자세히 알아보겠습니다.
Python은 operator 모듈을 통해 할당(assignment)과 연산(computation)을 하나의 문장으로 동시에 처리할 수 있는 제자리(In-place) 연산 메서드를 제공합니다. 이러한 함수들은 코드를 더 간결하게 만들어 주며, 복합 대입 연산자와 동일한 방식으로 동작합니다.
ixor() 함수
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
786(2진수: 1100010010)과 12(2진수: 0000001100)의 XOR 연산 결과인 798이 반환됩니다.
iand() 함수
iand() 함수는 현재 값에 비트 단위 AND(&) 연산을 수행한 결과를 다시 할당합니다. 이는 a &= b 연산과 동일하게 동작하며, 마찬가지로 불변 데이터 타입에는 적용할 수 없습니다.
예제
# iand()를 사용하여 비트 단위 AND 연산
int2 = op.iand(57, 34)
print("The value : ", end="")
print(int2)
출력 결과
The value : 32
57(2진수: 111001)과 34(2진수: 100010)의 AND 연산 결과인 32가 반환됩니다.
ipow() 함수
ipow() 함수는 현재 값에 거듭제곱(exponentiation) 연산을 수행한 결과를 다시 할당합니다. 이는 a **= b 연산과 동일하게 동작합니다.
예제
# ipow()를 사용하여 거듭제곱 연산
int2 = op.ipow(3, 2)
print("The value : ", end="")
print(int2)
출력 결과
The value : 9
3의 2제곱인 9가 반환됩니다.
정리
이번 글에서는 Python의 제자리(In-place) 연산자인 ixor(), iand(), ipow() 함수의 개념과 사용법을 살펴보았습니다. 이 세 함수는 각각 XOR, 비트 단위 AND, 거듭제곱 연산을 수행하며, 복합 대입 연산자(^=, &=, **=)와 동일한 기능을 함수 형태로 제공합니다. 불변 데이터 타입에는 사용할 수 없다는 점만 유의하면, 코드의 간결성을 높이는 데 유용하게 활용할 수 있습니다.