Passed by assignment. 즉 어떤 값을 전달하느냐에 따라 달라진다.
num = 10
메모리에 저장된 10이라는 정수형 객체를 num이라는 변수가 가리킨다.
파이썬은 int, str, tuple,dictionary의 key는 immutable하고 list, dict는 mutable하다.
(dict value는 마찬가지로 자료형에따라 달라짐)
immutable은 call by value 즉 value만 가져와 새 메모리에 객체를 담는다는 뜻.
mutable은 기존 메모리를 가르킨다는 뜻.
즉 list와 dictionary는 변수명을 바꿔서 담아준다 하더라도 하나가 변하면 모든 변수의 값이 변하게 된다.
(메모리에 담긴 본체가 변하므로)
이때 list같은 경우 c = a[:] 즉 슬라이스로 재정의 하거나 d = copy.deepcopy(a)를 하면 같은 객체를 공유하지 않고 새로 정의가 가능하다.(copy모듈의 deepcopy메소드)
'practivceAlgorithm > PYTHON 기능연습' 카테고리의 다른 글
[Python] 특정 문자열 찾기.(find응용) (0) | 2021.07.17 |
---|---|
[Python] set 알아야 할 점 총 정리. (0) | 2021.07.15 |
[Python] itertools 순열, 조합 구현. (0) | 2021.07.15 |
[PYTHON] all(), any() (0) | 2021.07.11 |
파이썬 리스트 메소드에 따른 시간복잡도 (0) | 2021.07.10 |