728x90
안녕하세요.
오늘은 파이썬 내장 함수인 isinstance()로 변수 타입을 확인해보겠습니다.
파이썬은 변수에 어떤 타입의 데이터든 담을 수 있는 동적 타이핑 언어입니다.
그래서 코드를 짜다 보면 변수에 들어간 정보가 숫자인지, 딕셔너리인지 확인이 필요한 경우가 발생합니다.
이때 type() 함수를 사용할 수도 있지만, isinstance() 를 사용하면 더 유연하게 변수 타입을 확인할 수 있습니다.
isinstance()
isinstance()는 어떤 객체(변수)가 특정 클래스(타입)의 인스턴스인지 True 또는 False 로 알려주는 파이썬 내장함수 입니다.
기본 문법
isinstance(object, classinfo)
- object: 검사할 대상 (변수, 값)
- classinfo: 확인하고 싶은 타입 (클래스, 또는 클래스들의 튜플)
이 함수의 특징은, 상속받은 부모클래스 타입도 포함하 변수 타입을 확인할 수 있습니다.
- type(): 정확하게 그 클래스여야만 True 반환
- isinstance(): 부모 클래스를 상속받은 자식 클래스도 True로 반환
예제
# 정수 확인
num = 100
result = isinstance(num, int)
print(f"num은 int인가요? {result}") # True
# 문자열 확인
text = "Hello Python"
result = isinstance(text, str)
print(f"text는 str인가요? {result}") # True
# 리스트 확인 (틀린 경우)
result = isinstance(text, list)
print(f"text는 list인가요? {result}") # False
#여러 타입 한번에 확인하기
data = 3.14
# "data가 int이거나 float인가요?" (즉, 숫자인가요?)
if isinstance(data, (int, float)):
print("계산이 가능한 숫자 데이터입니다.")
else:
print("숫자가 아닙니다.")
#상속 클래스 타입 확인하기
class Animal:
pass
class Dog(Animal): # Animal을 상속받음
pass
my_dog = Dog()
# 1. isinstance() 사용 (추천 👍)
print("isinstance(my_dog, Animal) : ")
print(isinstance(my_dog, Animal))
# 2. type() 사용 (비추천 👎)
print("type(my_dog) == Animal : ")
print(type(my_dog) == Animal)
결과
num은 int인가요? True
text는 str인가요? True
text는 list인가요? False
계산이 가능한 숫자 데이터입니다.
isinstance(my_dog, Animal) :
True
type(my_dog) == Animal :
False'Python' 카테고리의 다른 글
| [Python] is와 ==의 차이 (0) | 2025.11.26 |
|---|---|
| [Python] uuid로 고유한 식별자(Unique ID) 만들기 (0) | 2025.11.25 |
| [Python] abc 모듈과 @abstractmethod 로 추상클래스 만들기 (0) | 2025.11.20 |
| [Python] Pydantic 라이브러리 BaseModel 클래스 - 데이터 유효성 검사 (0) | 2025.11.19 |
| [Python] timeit 활용해서 코드 실행 속도 비교하기 (0) | 2025.11.18 |