목록파이썬/윤성우의 열혈 파이썬 중급편 (23)
개발자 블로그
immutable & mutable 객체가 지닌(객체에 저장된) 값이 수정이 불가능한 객체를 'immutable 객체'라고 하며, 반대로 객체가 지닌 값이 수정이 가능하면 'mutable 객체'라고 한다. 여기서 수정이 가능하다는 것은 메모리 주소가 바뀌지 않고 값을 수정할 수 있다는 것이다. 아래 예제 코드를 보며 부연 설명을 해보겠다. ##리스트## >> r = [1, 2, 3] >> id(r) #리스트의 메모리 주소 12345 >> r += [4, 5, 6] >> r >> [1, 2, 3, 4, 5, 6] >> id(r) 12345 #값이 바뀌었지만, 위 주소와 동일한 것을 확인할 수 있다. mutable 객체로는 대표적으로 리스트와 딕셔너리가 있고, immutable 객체로는 대표적으로 튜플, 문..

가비지 컬랙션이란? 레퍼런스 카운트가 0이라는 것은 아무것도 참조하고 있지 않다는 것으로 메모리 내에서 소멸 대상이 된다. 소멸 대상이 되었다고 해서 바로 소멸이 되진 않지만, 시스템에 시간적 여유가 있을 때 소멸시키게 된다. 이러한 일련의 과정들이 '가비지 컬렉션'이라고 한다. 즉, 레퍼런스 카운트가 0인 값은 소멸 대상이 되고, 시스템에 시간적 여유가 있을 때 소멸시키는 일련의 과정이다. 그렇다면 레퍼런스와 레퍼런스 카운트는 무엇인가! 파이썬에서의 변수는 빈상자에 담아둔다라는 개념보다는 '포스트 잇'과 같이 떼었다 붙였다 하는 개념이다. 즉, 참조(레퍼런스)는 이름이 쓰여진(변수명) 포스트잇을 붙인 것이라고 생각하면 된다. 따라서 레퍼런스 카운트는 객체를 참조하는 변수의 수이다. 그러면 가비지 컬랙션..
목차 더보기 Story 01 레퍼런스 카운트와 가비지 컬렉션 [가비지 컬렉션] [파이썬 인터프리터] Story 02 수정 가능한 객체와 수정 불가능한 객체 [immutable & mutable] [성격에 따라 달라지는 함수의 정의] Story 03 깊은 복사와 얕은 복사 [두 객체의 비교와 복사] [깊은 복사] Story 04 리스트 컴프리헨션 [리스트 생성 방법] [조건 필터 추가하기] [리스트 컴프리헨션에 for 한번 더 들어가는 경우] [이중 for 루프에 조건 필터 추가] Story 05 Iterable 객체와 Iterator 객체 [iter 함수] [Iterable 객체와 Iterator 객체의 구분] [스페셜 메소드] [Iterable 객체의 종류와 확인 방법] [for 루프와 Iterable..