본문 바로가기

Algorithm/알고리즘

[Python] 객체할당

파이썬에서 a=b처럼 객체를 할당하면 "객체의 참조(Reference)를 공유"

  • 가변 객체 (Mutable Object)인 경우, b를 변경하면 a값도 바뀔 수 있음
  • 불변 객체 (Immutable Object)에서는 b를 바꾸더라도, a는 영향을 받지 않음

1. 가변객체 (Mutable Object)

참조가 공유되므로 하나를 변경하면 다른 것도 영향을 받음

ex) 리스트, 딕셔너리, 집합(set)

a = [1, 2, 3]
b = a  # a와 b는 같은 리스트 객체를 참조
b[0] = 100

print(a)  # [100, 2, 3]
print(b)  # [100, 2, 3]

 

2. 불변객체 (Immutable Object)

새 값을 할당하면 참조가 변경되기 때문에 기존 객체에 영향이 없음

ex) 정수, 실수, 문자열, 튜플

a = 10
b = a  # a와 b는 10이라는 값을 참조
b = 20  # b가 새로운 객체를 참조

print(a)  # 10
print(b)  # 20