파이썬 hasattr() 함수란?
파이썬의 hasattr() 함수는 특정 객체에 지정한 이름의 속성(attribute)이 존재하는지 확인하는 내장 함수입니다. 속성이 존재하면 True를 반환하고, 존재하지 않으면 False를 반환합니다.
이 함수는 객체의 속성에 접근하기 전에 해당 속성이 실제로 있는지 미리 검사할 수 있어, AttributeError와 같은 예외 발생을 사전에 방지하는 데 매우 유용합니다.
hasattr() 문법
hasattr() 함수의 기본 문법은 다음과 같습니다.
hasattr(object, name)
매개변수 설명
- object: 속성의 존재 여부를 확인할 대상 객체입니다.
- name: 확인하려는 속성의 이름으로, 문자열(string) 형태로 전달해야 합니다.
반환값
- True: 객체에 지정된 이름의 속성이 존재하는 경우
- False: 객체에 지정된 이름의 속성이 존재하지 않는 경우
getattr()과의 관계
내부적으로 getattr() 함수가 호출될 때 hasattr()를 활용하여 AttributeError를 발생시켜야 하는지 여부를 판단합니다. 즉, 두 함수는 객체의 속성을 다룰 때 밀접하게 연관되어 동작합니다.
사용 예제
다음은 클래스 인스턴스에서 hasattr()를 사용하는 간단한 예제입니다.
class Male:
age = 21
name = 'x'
x = Male()
print('Male has age?:', hasattr(x, 'age'))
print('Male has salary?:', hasattr(x, 'salary'))실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Male has age?: True Male has salary?: False
정리
hasattr() 함수는 객체에 특정 속성이 있는지 안전하게 확인할 수 있는 파이썬의 핵심 내장 함수입니다. 동적 속성 접근이 필요한 상황이나 외부 라이브러리 객체를 다룰 때 예외 처리 없이 깔끔한 코드를 작성하는 데 활용할 수 있습니다.