이 시점에서 혼런의 공통 근원을 설명하겠다. 파이썬은 할당에 등호(=)를 사용하기 때문에 a = b 같은 문장을 수학적 명제의 상등 관계(equality, 같음)로 해석하려 한다. 즉, a와 b는 같다고 주장하는 것이다. 그러나 이 해석은 틀렸다.
첫째, 상등은 대칭(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의 값을 바꾸지는 않으므로 이제 둘은 같지 않다.
변수 재할당은 종종 유용하지만, 사용할 때는 주의해야 한다. 변수의 값을 자주 바꾸면 코드를 읽고 디버그하기가 어려워진다.