프로그래밍/Python

[Python] 파이썬 데이터 타입 확인하기(type(), isinstance())

UnaUna 2023. 3. 19. 17:58

파이썬에서 데이터의 타입을 확인하는 방법을 알아보자.

 

1. type() : 입력된 인자의 타입 정보를 return한다.

 

# int
print(type(1234))

# float
print(type(1234.1234))

# str
print(type("str"))

# list
print(type([1, 2, 3, 4]))

# dict
print(type({'1' : 2}))

# tuple
print(type((1, 2, 3, 4)))

# function
def type_function():
    pass
print(type(type_function))

결과

<class 'int'>
<class 'float'>
<class 'str'>  
<class 'list'> 
<class 'dict'> 
<class 'tuple'>
<class 'function'>

 

2. isinstance() : 입력된 데이터와 체크할 타입을 인자로 받아, 타입이 일치하는지 확인한다.

 

타입이 일치하면 True, 일치하지 않으면 False를 return한다.

주로 타입별로 분기를 탈 때 사용한다.

 

# int
print(isinstance(1234, int))

# float
print(isinstance(1234.1234, float))

# str
print(isinstance("str", str))

# list
print(isinstance([1, 2, 3, 4], list))

# dict
print(isinstance({'1' : 2}, dict))

# set
print(isinstance((1, 2, 3, 4), tuple))

# int or list이면
print(isinstance([1, 2, 3, 4], (int, list)))
print(isinstance([1, 2, 3, 4], (int, float)))

결과

True
True
True
True
True
True
True
False

마지막과 같이 입력된 타입 중 하나라도 일치하면 True를 반환한다.

 

if isinstance(123, int):
    print('Type은 int입니다')

if isinstance(123.123, float):
    print('Type은 float입니다')

if isinstance('str', str):
    print('Type은 str입니다')
Type은 int입니다
Type은 float입니다
Type은 str입니다

True, False를 반환하는 것을 이용하여 if문과 함께 사용하여 타입 별로 분기를 타게 활용할 수 있다. 

 

아래와 같이 class에도 활용할 수 있다.

class TypeCheck:
    print("")

type_check = TypeCheck()

print(type(type_check))
print(isinstance(type_check, TypeCheck))

결과

<class '__main__.TypeCheck'>
True