클래스, 인스턴스 여부 확인하기
특정 객체가 어떤 클래스의 인스턴스인지 확인하려면 어떻게 해야 할까요?
파이썬의 내장 함수 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 강의를 등록해 주세요!