반응형

에일리어싱(Aliasing)

 

두 변수가 가르키는 메모리 주소가 같으면 서로의 '에일리어싱(Aliasing)'이라고 한다.
문자열처럼 그 자체의 값이 변경 불가능한 값은 에일리어스를 생성해도 안전하지만,
리스트(list) 같은 가변적인 값은 에일리어스를 생성하게 되면 프로그램의 흐름에 문제가 발생할 수 있다.
INPUT OUTPUT
x = 5
y = x

y = 3
print(x)

print(y)

5
3

그 자체의 값이 변경 불가능한 값은 에일리어스를 생성해도 안전하다.

INPUT OUTPUT
numbers = [20, 18, 2, 4, 6, 8, 25, 9]
y = numbers
print("y[1] 값을 변경하기전")
print(numbers)
print(y)
print("y[1] 값을 변경하였을 때")
y[1] = 5
print(numbers)

print(y)
y[1] 값을 변경하기전
[20, 18, 2, 4, 6, 8, 25, 9]
[20, 18, 2, 4, 6, 8, 25, 9]

y[1] 값을 변경하였을 때
[20, 5, 2, 4, 6, 8, 25, 9]
[20, 5, 2, 4, 6, 8, 25, 9]

리스트(list)는 가변적인 값이기 때문에 에일리어스를 생성하게 되면, y가 x를 참조하기 때문에, x의 값도 바뀌게 된다.

반응형

+ Recent posts