포스트

Python에서 type과 isinstance의 차이점

type 함수의 역할

type은 Python에서 객체의 데이터 타입을 알려주는 함수입니다. 이 함수를 사용하면, 해당 객체가 어떤 클래스로부터 만들어졌는지 알 수 있습니다. 예를 들어, type(123)을 호출하면 <class 'int'>가 반환됩니다. 이는 123이 정수(int) 클래스의 인스턴스라는 것을 의미합니다.

1
2
x = 123
print(type(x))  # <class 'int'>

isinstance 함수의 특징

isinstance 함수는 객체가 특정 클래스나 그 클래스의 하위 클래스의 인스턴스인지를 확인합니다. 이 함수는 상속을 고려하므로, 상속 관계에 있는 클래스를 다룰 때 매우 유용합니다.

1
2
3
4
5
6
7
8
class Animal:
    pass

class Dog(Animal):
    pass

my_pet = Dog()
print(isinstance(my_pet, Animal))  # True

두 함수의 주요 차이점

  1. 상속 처리: isinstance는 상속을 고려하고, type은 그렇지 않습니다.
  2. 정확성: type은 객체의 정확한 타입을 알려주지만, isinstance는 객체가 속한 클래스의 계층 구조까지 고려합니다.

언제 어떤 함수를 사용할까?

  • 정확한 타입 확인이 필요한 경우: type을 사용합니다.
  • 상속을 고려해야 하는 경우: isinstance를 사용합니다.

코드 예시

여기에는 typeisinstance를 사용하는 간단한 코드 예시가 있습니다.

1
2
3
4
5
6
7
# type 사용
if type(x) is int:
    print("x는 정수입니다.")

# isinstance 사용
if isinstance(x, int):
    print("x는 정수 또는 정수를 상속받은 클래스의 인스턴스입니다.")

이 글을 통해 typeisinstance의 차이점과 각각 언제 사용해야 하는지에 대해 알게 되셨길 바랍니다. 이 두 함수는 Python 프로그래밍에서 자주 사용되므로 잘 알아두면 좋습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.