반응형
에일리어싱(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의 값도 바뀌게 된다.
반응형
'Python' 카테고리의 다른 글
[Python]유용한 스탠다드 모듈들 (0) | 2021.06.20 |
---|---|
[Python]모듈(Module) (0) | 2021.06.19 |
[Python]sorted 와 sort의 차이 (0) | 2021.06.17 |
[Python]파이썬 스타일 가이드(PEP 8) (0) | 2021.06.16 |
[Python]옵셔널 파라미터(optional parameter) (0) | 2021.06.15 |