a = 1
a += 2
- a가 가리키는 메모리 공간에 1이라는 값이 할당 (X)
- 1이라는 객체의 인스턴스의 주소값을 a가 가리키게 됨
- 2행이 실행되면 a가 가리키는 인스턴스가 바뀌게 되는 것
- python은 C처럼 변수라는 메모리 공간에 값을 직접 저장하지 않음
- 해당 값의 인스턴스를 가르키고 해당 인스턴스의 Reference count를 증가시킨다
a = b = 2
a = 3
print(a, b)
c = d = [1, 2, 3]
c[1] = 10
print(c, d)
>>> 3 2
[1, 10, 3] [1, 10, 3]
def immutable(param): # like call-by-value
param += 1
def mutable(param): # like call-by-reference
param[1] = 10
a = 1
b = [1,2,3,4]
print(a, b)
immutable(a)
mutable(b)
print(a, b)
>>> 1 [1, 2, 3, 4]
1 [1, 10, 3, 4]
reference
차후 스터디