[Python 내장 함수] isinstance() : 특정 클래스의 인스턴스 확인

 

 


1. isinstance() 함수란?

 

파이썬에서 제공하는 기본 내장 함수 중 하나인 isinstance() 함수는 변수가 특정 클래스의 인스턴스인지 확인하는 데 사용됩니다. 이 함수는 bool 값을 반환하며, 변수가 특정 클래스의 인스턴스일 경우 True, 아닐 경우 False 값을 반환합니다. 

 

isinstance()함수는 아래와 같은 문법을 가지고 있으며, 두 개의 인자를 받습니다. 여기서 object는 변수나 객체를 의미하며, classinfo는 확인하고자 하는 클래스를 나타냅니다.

 

isinstance(object, classinfo)

2. isinstance() 사용법

 

아래 코드는 isinstance() 함수를 사용하여 만든 my_list가 리스트인지 확인하는 코드입니다. 이 처럼  isinstance() 함수를 사용하면 변수의 유형을 쉽게 확인할 수 있습니다. 코드에서 my_list가 리스트이므로 True가 반환됩니다.

 

my_list = [1, 2, 3]
print(isinstance(my_list, list))  # True

 

아래 코드는 Dog 클래스의 인스턴스인 my_dog 변수가 Animal 클래스의 인스턴스인지 확인하는 코드입니다. 이 처럼  isinstance() 함수가 클래스와 상속 관계에서도 잘 동작한다는 것을 확인할 수 있습니다. 코드에서 Dog 클래스는 Animal 클래스를 상속받았으므로, my_dog 변수는 Animal 클래스의 하위 클래스인 동시에 Animal 클래스의 인스턴스입니다. 따라서 isinstance() 함수는 True를 반환합니다.

 

class Animal:
    pass

class Dog(Animal):
    pass

my_dog = Dog()
print(isinstance(my_dog, Animal))  # True

 


3. isinstance()와 type()의 차이점


isinstance() 함수와 type() 함수는 모두 변수의 유형을 확인하는 데 사용됩니다. 그러나 이 두 함수는 다른 방식으로 작동합니다. 아래 코드를 보면 쉽게 이해할 수 있습니다. type() 함수는 변수의 실제 유형을 반환하는 것을 볼 수 있습니다. 반면에 isinstance() 함수는 변수가 특정 클래스의 인스턴스인지 여부를 반환합니다.

 

my_list = [1, 2, 3]
print(type(my_list))  # <class 'list'>