코드로 우주평화

Python _ isinstance로 타입을 체크하자. 본문

나는 이렇게 학습한다/Language

Python _ isinstance로 타입을 체크하자.

daco2020 2022. 3. 30. 22:17
반응형

어떤 객체가 무슨 타입인지를 알려면 type() 메서드를 활용하면 됩니다.

 

하지만 어떤 타입이 맞는지 참/거짓으로 체크만 하고 싶다면 isinstance()를 활용할 수 있습니다.

 

 

 

 

사용법은 간단합니다.

 

isinstance 메서드에 첫 번째 인자로 해당 객체를, 두번째 인자로 체크하고 싶은 타입을 넣어주면 됩니다.

 

def 체크_문자열(객체):
    return isinstance(객체, str)
    
    
print(체크_문자열('문자')) 
# >>> True


print(체크_문자열(123)) 
# >>> False

문자열을 넣었을 때는 True, 숫자를 넣었을 때는 False를 반환합니다.

 

 

def 체크_리스트(객체):
    return isinstance(객체, list)
    
    
print(체크_리스트('문자')) 
# >>> False


print(체크_리스트(123)) 
# >>> False


print(체크_리스트([1,2,3])) 
# >>> True

다른 타입도 마찬가지로 체크할 수 있습니다.

 

 


 

이렇듯 isinstance를 활용하면 유효성 검사로 활용할 수 있는 함수도 만들 수 있습니다.

 

 

 

레퍼런스

파이썬 공식문서

isinstance(object, classinfo)

객체 인수가 classinfo 인수 또는 (직접, 간접 또는 가상) 하위 클래스의 인스턴스인 경우 True를 반환합니다. 
객체가 주어진 유형의 객체가 아니면 함수는 항상 False를 반환합니다. 
classinfo가 유형 객체의 튜플(또는 재귀적으로, 다른 튜플)이거나 여러 유형의 Union Type이면 객체가 유형 중 하나의 인스턴스인 경우 True를 반환합니다. 
classinfo가 유형 또는 유형의 튜플 및 그러한 튜플이 아닌 경우 TypeError 예외가 발생합니다.

 

 

 

반응형