파이썬 getattr() 함수란 무엇인가?
파이썬의 getattr() 함수는 객체에서 지정한 이름의 속성(attribute) 값을 가져오는 내장 함수입니다. 만약 해당 속성이 존재하지 않으면, 함수에 미리 전달해 둔 기본값(default)을 대신 반환합니다.
일반적으로 객체 속성에 접근할 때 obj.name처럼 점(.) 연산자를 사용하지만, 속성 이름을 문자열로 동적으로 다뤄야 하는 상황에서는 getattr()이 매우 유용하게 활용됩니다.
getattr() 기본 문법
getattr() 메서드의 기본 문법은 다음과 같습니다.
getattr(object, name[, default])
매개변수 설명
- object: 속성 값을 가져올 대상 객체
- name: 찾고자 하는 속성의 이름(문자열)
- default (선택): 속성이 존재하지 않을 때 반환할 기본값
반환값
- 객체에서 지정한 이름의 속성 값
- 속성이 존재하지 않으면 default로 지정한 값
- 속성도 없고 default도 정의되지 않았다면 AttributeError 예외 발생
getattr() 사용 예제
아래 예제는 getattr()을 사용해 클래스 인스턴스의 속성 값을 조회하는 방법을 보여줍니다.
class Male:
age = 21
name = "Abel"
x = Male()
print('나이:', getattr(x, "age"))
print('나이:', x.age)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
나이: 21 나이: 21
마무리 정리
getattr(x, "age")와 x.age가 동일한 결과를 반환하는 것을 확인할 수 있습니다. 두 방식의 차이점은 getattr()은 속성 이름을 문자열로 전달한다는 점입니다.
따라서 속성 이름을 실행 중에 동적으로 결정해야 하거나, 존재하지 않는 속성 접근 시 예외 대신 기본값으로 안전하게 처리하고 싶을 때 getattr() 함수를 활용하면 코드의 유연성과 안정성을 모두 높일 수 있습니다.