(오류 수정 환영합니다!)
일반적으로 c언어는 다음과 같은 방식으로 변수를 다룬다.
위 방식들은 알고 있다는 전제로 이야기를 이어나가겠다. (시간나면 정리해보겠습니다!)
파이썬은 c언어와 다른 방식으로 변수를 다룬다.
c언어에서는 1이라는 값을 세 변수에 할당해주면 각각의 공간에 각각 1을 저장한다.
하지만 파이썬은 1이라는 객체를 생성하고 각 변수들은 1이라는 객체를 가리킨다.
a = b = c = 1
print('a = ', id(a),'b = ', id(b),'c = ', id(c)) #id() 는 주소값을 알려줌
a += 1
print('a = ', id(a))
a -= 1
print('a = ', id(a))
lst = [1, 2, 3]
print('lst = ', id(lst),'lst[0] = ', id(lst[0]),'lst[0]+1 = ', id(lst[0]+1))
다음은 실제 출력 내용이다.
a, b, c의 주소가 모두 같다.
a에 +1을 하면(=2) 주소가 변경된다.