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

파이썬의 &= 연산자란? 비트 AND 복합 할당 연산자 완벽 정리

파이썬에서 &= 연산자는 비트 AND 연산자(&)와 대입 연산자(=)를 결합한 복합 할당 연산자입니다. 변수에 저장된 값과 다른 값을 비트 단위로 AND 연산한 뒤, 그 결과를 다시 같은 변수에 할당하는 역할을 합니다.

&= 연산자의 내부 동작 원리

&=는 일종의 문법적 설탕(syntactic sugar)으로, 내부적으로는 객체의 object.__iand__() 메서드를 호출합니다. 파이썬 공식 문서에 따르면 이 메서드는 다음과 같은 역할을 합니다.

이 메서드들은 확장 산술 할당(+=, -=, *=, @=, /=, //=, %=, **=, <<=, >>=, &=, ^=, |=)을 구현하기 위해 호출됩니다. 이 메서드들은 가능한 한 연산을 제자리(in-place)에서 수행하여 자기 자신(self)을 수정하고 그 결과를 반환해야 합니다.

즉, a &= ba = a & b와 결과적으로 같지만, 가변(mutable) 객체의 경우 새로운 객체를 생성하지 않고 기존 객체를 직접 수정할 수 있어 더 효율적일 수 있습니다.

사용 예제

다음 예제를 통해 &= 연산자의 동작을 확인해 보겠습니다.

a = 6  # 2진수로 110
b = 5  # 2진수로 101
a &= b  # 110과 101의 비트 AND 연산 결과인 100, 즉 4가 됨
print(a)

실행 결과

4

동작 설명

비트 AND 연산은 두 숫자의 각 비트를 비교하여 양쪽 모두 1일 때만 1을 반환합니다.

  • a = 6 → 2진수 110
  • b = 5 → 2진수 101
  • 110 & 101100 (2진수), 즉 십진수 4

연산 후 a는 제자리에서 수정되어 6에서 4로 변경됩니다. 이처럼 &= 연산자는 기존 변수를 갱신하는 방식으로 동작하며, 코드를 더 간결하게 만들어 줍니다.

이러한 특수 메서드에 대한 자세한 내용은 파이썬 공식 데이터 모델 문서에서 확인할 수 있습니다.