본문으로 건너뛰기
실습하기

클래스, 인스턴스 여부 확인하기

특정 객체가 어떤 클래스의 인스턴스인지 확인하려면 어떻게 해야 할까요?

파이썬의 내장 함수 isinstance()를 사용하면 이를 간단히 확인할 수 있습니다.


isinstance() 사용 방법

isinstance() 함수는 다음과 같이 사용합니다.

isinstance() 사용 방법
isinstance(객체, 클래스)

이 함수는 다음 조건에 따라 값을 반환합니다.

  • 객체가 지정한 클래스의 인스턴스이거나, 해당 클래스를 상속받은 하위 클래스의 인스턴스라면 True를 반환합니다.

  • 그렇지 않으면 False를 반환합니다.


isinstance() 사용 예시

아래는 Dog 클래스의 인스턴스인 my_dog이 여러 클래스의 인스턴스인지 확인하는 예제입니다:

isinstance() 사용 예시
class Animal:
pass

class Fish:
pass

class Dog(Animal):
pass

my_dog = Dog()

print(isinstance(my_dog, Dog))
# True
print(isinstance(my_dog, Animal))
# True
print(isinstance(my_dog, Fish))
# False
print(isinstance(my_dog, object))
# True
print(isinstance(my_dog, int))
# False

위 코드에서 my_dog 객체는 Dog 클래스의 인스턴스이므로 isinstance(my_dog, Dog)True를 반환합니다.

또한 Dog 클래스는 Animal 클래스를 상속받았으므로 isinstance(my_dog, Animal)True를 반환합니다.

하지만 Fish 클래스의 인스턴스가 아니므로 isinstance(my_dog, Fish)False를 반환합니다.

마지막으로 object 클래스는 모든 클래스의 부모 클래스이므로 isinstance(my_dog, object)True를 반환합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!