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() 함수의 차이점도 궁금하신가요? 구체적인 비교가 필요하시면 말씀해 주세요!