프로그래밍/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