Python - isinstance()
isinstance()
함수는 Python 내장 함수 중 하나로, 어떤 객체가 특정 클래스나 타입의 인스턴스인지를 확인하는 데 사용됩니다. 주어진 객체가 지정한 클래스 또는 타입의 인스턴스인 경우 True
를 반환하고, 아닌 경우 False
를 반환합니다.
예
# 예제 클래스 정의
class Animal:
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
# 객체 생성
dog_instance = Dog()
cat_instance = Cat()
# isinstance 사용
print(isinstance(dog_instance, Dog)) # True
print(isinstance(cat_instance, Dog)) # False
# 상속 관계 확인
print(isinstance(dog_instance, Animal)) # True
print(isinstance(cat_instance, Animal)) # True
위의 예시에서 isinstance()
함수는 객체가 특정 클래스의 인스턴스인지 확인합니다. 또한 클래스 간의 상속 관계에도 사용할 수 있습니다.
활용
제가 Django 프로젝트에서 활용한 방식을 간단하게 표현하면 다음과 같습니다.
class PDFMaker:
# 생략
def makes_pdf(self) -> Union[HttpResponse, bytes]:
try:
# 생략
# bytes 타입 return
except Exception as e:
# 생략
return HttpResponse(response_data, status=500)
# views
class PDFView(APIVIew):
# 생략
pdf_maker = PDFMaker()
byte = pdf_maker.makes_pdf()
if isinstance(byte, HttpResponse):
return byte # 예외 발생 시 HttpResponse 반환
# 생략
return FileResponse(byte)
예시 코드에서 사용된 isinstance()
함수의 목적은 byte
변수가 HttpResponse
클래스의 인스턴스인지를 확인하는 것입니다.
이를 통해 pdf_maker.makes_pdf()
메서드가 HttpResponse
객체를 반환하는지 여부를 판단하여 에러 처리를 수행했습니다.
주어진 코드에서 isinstance(byte, HttpResponse)
는 byte
변수가 HttpResponse
클래스의 인스턴스인지를 확인하고, 그에 따라 에러 처리를 수행하는 역할을 합니다.
'Python > Python' 카테고리의 다른 글
Python의 변수와 참조 (0) | 2023.09.21 |
---|---|
deque 모듈 (0) | 2023.08.30 |
Python) 위치 인자, 키워드 인자 (0) | 2023.07.25 |
@classmethod 와 @staticmethod (0) | 2023.07.20 |
@property 데코레이터 (0) | 2023.07.01 |