2. del이 하는 일 (중요!)
del은 메모리에서 객체를 직접 삭제하는 것이 아니라, 변수 이름과 객체 사이의 연결 고리(참조)를 끊는 역할을 합니다.
-
del x: “이제부터x라는 이름은 아무것도 가리키지 않아!”라고 선언하는 것입니다. -
이후 해당 객체를 가리키는 다른 이름이 아무것도 없게 되면, 파이썬의 **가비지 컬렉터(Garbage Collector)**가 판단하여 메모리에서 실제 객체를 삭제합니다.
3. 주요 활용 사례
del은 단순히 변수를 없애는 것 외에도 리스트나 딕셔너리의 요소를 삭제할 때 유용하게 쓰입니다.
-
변수 삭제:
Python
a = 10 del a # print(a) # NameError 발생 -
리스트 요소 삭제:
Python
arr = [1, 2, 3, 4] del arr[1] # index 1인 '2'를 삭제 -> [1, 3, 4] -
딕셔너리 키 삭제:
Python
d = {'name': 'Gemini', 'age': 1} del d['age'] # {'name': 'Gemini'}
💡 왜 del(x) 처럼 괄호를 써도 실행되나요?
많은 분이 del을 함수로 오해하는 이유입니다. 파이썬에서 (x)는 단순히 괄호로 둘러싸인 표현식으로 해석될 수 있기 때문입니다.
del (x)는del x와 동일하게 작동하지만, 이는del이 함수라서가 아니라 괄호가 연산 우선순위를 나타내는 기호로 쓰였을 뿐입니다.
요약하자면: del은 함수가 아니라 **객체의 이름을 지우는 명령어(예약어)**입니다.
혹시 리스트에서 요소를 지울 때 del 외에 remove()나 pop() 함수의 차이점도 궁금하신가요? 구체적인 비교가 필요하시면 말씀해 주세요!