본문 바로가기
Python

[Python] isinstance()로 변수 타입 확인하기

by teamnova 2025. 11. 23.
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