더북(TheBook)

이 시점에서 혼런의 공통 근원을 설명하겠다. 파이썬은 할당에 등호(=)를 사용하기 때문에 a = b 같은 문장을 수학적 명제의 상등 관계(equality, 같음)로 해석하려 한다. 즉, ab는 같다고 주장하는 것이다. 그러나 이 해석은 틀렸다.

첫째, 상등은 대칭(symmetric) 관계이며 할당은 그렇지 않다. 예를 들어 수학에서 a=7이면 7=a이다. 그러나 파이썬에서 문장 a = 7은 올바르지만, 7 = a는 그렇지 않다.

또한, 수학에서 상등(equality)의 명제는 항상 참 또는 거짓 중에 하나여야 한다. a = b 이면 a는 항상 b와 같아야 한다. 파이썬에서 할당문은 두 변수를 같게 만들 수는 있지만, 두 변수가 같은 상태에 머물러야 한다는 뜻은 아니다.

>>> a = 5

>>> b = a # 이제 a와 b는 같다

>>> a = 3 # a와 b는 이제 같지 않다

>>> b

5

셋째 줄은 a의 값을 바꾸지만, b의 값을 바꾸지는 않으므로 이제 둘은 같지 않다.

변수 재할당은 종종 유용하지만, 사용할 때는 주의해야 한다. 변수의 값을 자주 바꾸면 코드를 읽고 디버그하기가 어려워진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.