파이썬의 get() 메서드는 표준 라이브러리에 포함된 기능으로, 딕셔너리(dictionary)에 저장된 요소에 접근할 때 사용합니다. 프로그래밍을 하다 보면 존재하지 않는 키(key)를 검색해야 하는 경우가 종종 발생하는데, 이때 인덱스 방식(dict[key])으로 접근하면 KeyError가 발생하며 프로그램이 비정상적으로 종료됩니다. 반면 get() 메서드를 사용하면 오류 없이 이러한 상황을 우아하게 처리할 수 있습니다.
get() 메서드의 문법
dict.get(key[, value])
매개변수 설명:
- key — 딕셔너리에서 찾고자 하는 키 (필수)
- value — 해당 키가 존재하지 않을 때 반환할 기본값 (선택 사항)
두 번째 매개변수인 value는 생략할 수 있으며, 지정하지 않은 상태에서 키를 찾지 못하면 None이 반환됩니다.
사용 예제
아래 예제에서는 Address(주소)와 Distance(거리)라는 두 개의 키를 가진 customer라는 딕셔너리를 생성합니다. 일반적인 인덱스 방식과 get() 메서드를 사용했을 때의 차이점을 확인해 보겠습니다.
customer = {'Address': 'Hawai', 'Distance': 358}
# 인덱스 방식으로 값 출력
print(customer["Address"])
# get() 메서드로 값 출력
print('Address: ', customer.get('Address'))
print('Distance: ', customer.get('Distance'))
# 딕셔너리에 존재하지 않는 키 조회
print('Amount: ', customer.get('Amount'))
# 존재하지 않는 키에 기본값 지정하여 조회
print('Amount: ', customer.get('Amount', 2050.0))
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Hawai Address: Hawai Distance: 358 Amount: None Amount: 2050.0
결과 분석 및 핵심 포인트
실행 결과를 통해 몇 가지 중요한 동작 방식을 확인할 수 있습니다.
- 키가 존재하는 경우: 인덱스 방식과
get()메서드 모두 동일하게 값을 반환합니다. - 키가 존재하지 않는 경우: 인덱스 방식이라면
KeyError로 프로그램이 중단되지만,get()메서드는None을 반환하여 프로그램이 계속 실행됩니다. - 기본값을 지정한 경우: 두 번째 인자로 기본값(예제에서는
2050.0)을 전달하면, 키가 없을 때 해당 기본값이 반환됩니다.
즉, get() 메서드는 존재하지 않는 키에 대해서도 오류를 발생시키지 않고 유연하게 대응할 수 있는 안전한 접근 방법입니다. 특히 외부 데이터(JSON, API 응답 등)를 처리할 때 예외 처리 코드를 줄이고 코드의 가독성을 높이는 데 큰 도움이 됩니다.