django
안전하게 써보자! get()
베스트오버
2023. 6. 12. 22:35
profile_image = user_data.get("properties").get("profile_image"),
profile_image = user_data["properties"].get("profile_image")
두 줄의 코드는 모두 "profile_image"라는 키에 해당하는 값을 가져오는 기능을 수행합니다. 그러나 문법적인 차이가 있습니다.
첫 번째 코드인 user_data.get("properties").get("profile_image")는 get() 메서드를 사용하여 user_data 딕셔너리에서 "properties" 키를 통해 "profile_image" 키에 접근합니다. 만약 해당 키가 존재하지 않으면 None을 반환합니다. 이렇게 작성하면 KeyError가 발생하지 않고 프로그램이 중단되지 않으므로 안전성이 높습니다.
두 번째 코드인 user_data['properties'].get('profile_image')는 딕셔너리의 키에 직접 접근하는 방식입니다. 이 코드는 user_data 딕셔너리에 "properties" 키가 있을 때만 사용할 수 있습니다. 그렇지 않은 경우, 즉 "properties" 키가 없는 경우 KeyError가 발생합니다. get() 메서드를 함께 사용하면 해당 키가 없을 때 None을 반환하도록 설정할 수 있습니다.
결론적으로, 이 두 줄의 코드는 동일한 결과를 반환하지만 get() 메서드를 사용하는 첫 번째 방식이 더 안전하고 예외 처리에 강점이 있습니다. 따라서 코드를 작성할 때는 get() 메서드를 사용하여 키에 접근하는 것이 권장됩니다.