[파이썬] 튜플 불변성을 유지하는 방법 예제

파이썬에서 불변성(Immutability)은 튜플, 문자열, 정수 및 부동소수점 숫자와 같은 데이터 유형에서 중요한 개념입니다. 불변한 데이터는 생성 후 변경할 수 없으며 이러한 특성은 데이터 무결성을 유지하고 예기치 않은 버그를 방지하는 데 도움이 됩니다. 다음은 불변성을 유지하는 방법에 대한 예제입니다:

1. 문자열 (Strings):

문자열은 불변합니다. 새로운 문자열을 생성할 때 기존 문자열을 수정하는 대신 새로운 문자열을 반환합니다.

original_string = "Hello"
modified_string = original_string + ", World!"
print(original_string)   # "Hello"
print(modified_string)  # "Hello, World!"

2. 튜플 (Tuples):

튜플은 생성 후 변경할 수 없습니다. 불변한 데이터 구조로 사용됩니다.

my_tuple = (1, 2, 3)
# my_tuple[0] = 4  # 이 줄은 에러를 발생시킵니다.

3. 정수 (Integers)와 부동소수점 숫자 (Floats):

정수 및 부동소수점 숫자도 불변합니다. 새로운 값을 할당할 때 새로운 객체가 생성됩니다.

x = 5
y = x  # y에는 x의 값이 복사됩니다.
x = 10  # x에는 새로운 정수 10이 할당됩니다.
print(y)  # 5

4. frozenset을 사용한 불변한 집합 (Sets):

frozenset은 변경할 수 없는 집합으로, 요소를 추가, 삭제, 수정할 수 없습니다.

immutable_set = frozenset([1, 2, 3])
# immutable_set.add(4)  # 이 줄은 에러를 발생시킵니다.

불변성은 데이터를 보호하고 예기치 않은 부작용을 방지하는 데 중요한 역할을 합니다. 데이터를 변경해야 하는 경우에는 새로운 데이터를 생성하고 원래 데이터를 보존하는 방식으로 처리해야 합니다.