본문 바로가기
프로그래밍/Python

파이썬(Python) - 객체(Class, 클래스) 타입 확인 및 일치 여부 (feat. type, isinstance)

by 부자 꽁냥이 2022. 9. 27.

파이썬(Python)에서는 주어진 객체가 어떤 클래스(타입)인지 알려주는 type 클래스와 해당 객체가 특정 클래스인지 아닌지 확인해주는 isinstance 함수가 있다. 이번 포스팅에서는 type와 isinstance에 대하여 알아본다.


   type와 isinstance 사용법

1) 너 누구야? 객체 확인하기 : type

type은 객체(클래스)가 어떤 객체(클래스)인지 알려주는 클래스이다. type은 첫 번째 인자로 객체를 받는다. 아래 코드를 통해 사용법을 알아보자.

 

class MyClass:
    def __init__(self, x=None):
        self.x=x

a = 'hello world!'
b = range(3)
c = MyClass()

print(type(a))
print(type(b))
print(type(c))

 

type

type의 단점은 특정 객체인지 확인만 한다는 것이다. 만약 주어진 객체가 str인지 아닌지 확인하려면 다음과 같이 해줘야 할 것이다.

 

class_name = 'str'
print(str(type(a)) == f"<class '{class_name}'>") ## a는 str 객체인가?
print(str(type(b)) == f"<class '{class_name}'>") ## b는 str 객체인가?

 


2) 객체 일치 여부 : isinstance

type라도 위와 같이 주어진 객체가 특정 객체인지 확인할 수는 있다. 하지만 매번 저렇게 하기는 쉽지 않다. 그래서 나온 것이 isinstance이다. isinstance의 사용법은 다음과 같다.


isinstance( 객체 1, 객체 2 )


위 사용법의 의미는 '객체 1'이 '객체 2'와 같은지 아닌지 여부를 알아보겠다는 것이다. 긴 말 필요 없다. 코드를 통해 살펴보자.

 

class MyClass:
    def __init__(self, x=None):
        self.x=x

a = 'hello world!'
b = range(3)
c = MyClass()

print(isinstance(a, str)) ## a는 str 객체인가?
print(isinstance(b, range)) ## b는 range 객체인가?
print(isinstance(c, MyClass)) ## c는 MyClass 객체인가?

 

isinstance


댓글


맨 위로