함수 객체가 특정 속성(attribute)을 가지고 있는지 여부를 확인하는 함수입니다.
함수의 첫 번째 인수는 객체를 나타내고, 두 번째 인수는 해당 객체에서 존재하는지
확인하려는 속성 이름입니다.
hasattr() 함수는 객체가 해당 속성을 가지고 있으면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
이 함수는 객체에 대한 속성 검사를 할 때 유용하며, 속성이 존재하는 경우에만 해당 속성을 가져와
사용하려는 경우에 사용할 수 있습니다.
class MyClass:
x = 1
y = 2
obj = MyClass()
if hasattr(obj, 'x'):
print(obj.x) # 1
if hasattr(obj, 'z'):
print(obj.z) # 해당 속성이 없으므로 아무것도 출력되지 않음
위 예시에서 hasattr() 함수는 obj 객체가 'x'와 'z'라는 속성을 가지고 있는지 확인합니다.
'x'는 MyClass 클래스의 클래스 변수이므로 True를 반환하며, 'z'는 존재하지 않는 속성이므로 False를 반환합니다.
따라서 첫 번째 if 문은 True가 되어 obj.x가 출력되고, 두 번째 if 문은 False가 되어 아무것도 출력되지 않습니다.
has attribute? 같은 느낌의 함수이다.