type은 객체가 실질적으로 생성한 클래스의 정보를 보여줍니다.

가장 간단하면서, 확실하게 객체 타입을 알아낼 수 있습니다.

객체 타입 비교또한

위처럼 간단하게 끝낼 수 있습니다.

 

하지만 상속관계가 낀다면 얘기가 달라집니다.

클래스 Foo와 클래스 Bar(Foo)가 존재할 때,

위와 같은 상황에서는 type으로 상속관계를 확인할 수 없습니다.

따라서 이 때, isinstance 함수를 이용하게 됩니다.

isintance(object, classinfo)

classinfo : A class, Type or tuple containing Classes.

어떤 객체를 비교할 때 type처럼 어떤 클래스나, Type과 비교할 수 있습니다.

뿐만 아니라 클래스들을 담고있는 tuple객체와도 비교가 가능합니다. (bool값을 return하기 때문에 당연히 tuple안의 모든 클래스와 같아야합니다.)

 

이런 결과가 도출되는 이유는, isinstance의 함수 설명을 읽어보면 알 수 있습니다.

Returns a Boolean stating whether the object is an instance or subclass of another object.

특정객체가 다른 객체의 인스턴스이거나, 하위 클래스 객체인지의 여부를 Boolean으로 반환합니다.

이를 이용하여, 커스텀 Exception 구조를 만들거나, 상속 구조를 가진 OOP에서 활용이 가능합니다.

 

참고문헌

https://python-reference.readthedocs.io/en/latest/docs/functions/isinstance.html


댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.