type() 및 isinstance() Python 예와 함께

⚡ 스마트 요약

Python `type()`과 `isinstance()`는 객체의 클래스를 확인하는 내장 함수입니다. `type()`은 객체의 정확한 타입을 반환하고, `isinstance()`는 객체가 특정 클래스 또는 클래스 튜플에 속하는지 여부를 확인합니다. 두 함수 모두 예제를 통해 설명합니다.

  • 🔍 유형(): str, int 또는 list와 같이 객체의 정확한 클래스를 반환합니다.
  • isinstance(): 주어진 객체가 특정 클래스의 인스턴스인지 확인하고, True 또는 False를 반환합니다.
  • 🧩 세 개의 인수를 받는 type(): `type(name, bases, dict)`는 완전히 새로운 클래스 객체를 동적으로 생성합니다.
  • 🌳 하위 클래스: isinstance()는 하위 클래스인 경우 True를 반환하고, type()은 정확한 클래스만 확인합니다.
  • 🎯 사용 사례: 입력 유형을 검증하고, 변수를 디버그하고, 객체 유형별로 분기 로직을 ​​구현합니다.
  • 🤖 AI 도움말: Copilot과 같은 AI 도구는 필요에 따라 type() 및 isinstance() 검사를 생성합니다.

type() 및 isinstance() Python

type()이란 무엇입니까? Python?

Python 입력으로 제공된 변수의 클래스 유형을 찾는 데 도움이 되는 type()이라는 내장 함수가 있습니다. 예를 들어 입력이 문자열인 경우 출력은 다음과 같습니다. , 목록의 경우 , 등.

type() 명령을 사용하면 단일 인수를 전달할 수 있으며 반환 값은 주어진 인수의 클래스 유형이 됩니다(예: type(object)).

type()에 세 개의 인수(예: type(name, bases, dict))를 전달하는 것도 가능합니다. 이 경우 새로운 유형 객체가 반환됩니다.

type() 구문

type()은 아래와 같이 두 가지 방법으로 사용될 수 있습니다.

 type(object)
type(namr, bases, dict)

파라미터: 유형(객체)

  • object: 필수 매개변수입니다. 이것이 type()에 전달된 유일한 매개변수인 경우 매개변수의 유형을 반환합니다.

파라미터: 유형(이름, 베이스, 사전)

  • 이름:클래스 이름.
  • 베이스: (선택 사항). 이는 선택적 매개변수이며 기본 클래스입니다.
  • 사전: (선택 사항). 선택적 매개변수로, 클래스의 정의를 담고 있는 네임스페이스이다.

반환 값

객체가 type()에 전달된 유일한 매개변수인 경우 객체의 유형을 반환합니다.

type에 전달된 매개변수가 유형(object, bases, dict)인 경우, 이 경우 새로운 유형의 객체를 반환합니다.

유형()의 예

이 예제에서는 문자열 값, 숫자, 실수 값, 복소수, 리스트, 튜플, 사전 및 집합이 있습니다. 각 변수에 대한 출력을 보려면 type을 가진 변수를 사용합니다.

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

출력:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

예: 클래스 객체에 type() 사용.

type()을 사용하여 클래스에서 생성된 객체를 확인하면 클래스 이름과 함께 클래스 유형이 반환됩니다. 이번 예제에서는 클래스를 생성하고, 클래스 테스트를 통해 생성된 객체 타입을 확인해 보겠습니다.

class test:
    s = 'testing'

t = test()
print(type(t))

출력:

<class '__main__.test'>

예: type()에서 이름, 베이스 및 사전 사용

유형은 type(name, bases, dict) 구문을 사용하여 호출할 수도 있습니다.

type()ie, name, bases 및 dict에 전달된 세 가지 매개 변수는 클래스 정의를 구성하는 구성 요소입니다. 이름은 클래스 이름을 나타내고, bases는 기본 클래스, dict는 기본 클래스 속성의 사전입니다.

이 예에서는 type()의 세 가지 매개변수(name, bases 및 dict)를 모두 활용하겠습니다.

예:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

출력:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

세 가지 인수를 모두 type() 에 전달하면 기본 클래스 속성으로 새 클래스를 초기화하는 데 도움이 됩니다.

isinstance()는 무엇입니까? Python?

Python isinstance는 다음의 일부입니다. 파이썬 내장 함수. Python isinstance()는 두 개의 인수를 취하고, 첫 번째 인수가 두 번째 인수로 제공된 classinfo의 인스턴스이면 true를 반환합니다.

구문 isinstance()

isinstance(object, classtype)

파라미터

  • object: classtype과 비교하는 인스턴스의 객체입니다. 유형이 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
  • 클래스 유형(class type): 유형이나 클래스 또는 유형 및/또는 클래스의 튜플입니다.

반환 값

객체가 classtype의 인스턴스이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

isinstance()의 예

이번 섹션에서는 isinstance()를 배우기 위한 다양한 예제를 공부하겠습니다.

예 : isinstance() 정수 검사

아래 코드는 정수 값 51을 int 유형과 비교합니다. 51의 유형이 int와 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다.

age = isinstance(51,int)
print("age is an integer:", age)

출력:

age is an integer: True

예 : isinstance() 부동 소수점 검사

이 예에서는 float 값을 float 유형과 비교할 것입니다. 즉 3.14 값은 float 유형과 비교됩니다.

pi = isinstance(3.14,float)
print("pi is a float:", pi)

출력:

pi is a float: True

예: isinstance() 문자열 검사

message = isinstance("Hello World",str)
print("message is a string:", message)

출력:

message is a string: True

예 : isinstance() 튜플 확인

코드는 tuple 유형의 튜플(1,2,3,4,5)을 확인합니다. 주어진 입력이 튜플 유형이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

출력:

my_tuple is a tuple: True

예 : isinstance() 세트 확인

코드는 유형이 설정된 세트({1,2,3,4,5})를 확인합니다. 제공된 입력이 유형 세트이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

출력:

my_set is a set: True

예: isinstance() 목록 확인

코드는 목록 유형이 있는 목록 [1,2,3,4,5]를 확인합니다. 주어진 입력이 목록 유형이면 true를 반환하고 그렇지 않으면 false를 반환합니다.

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

출력:

my_list is a list: True

예: isinstance() dict 확인

이 코드는 dict 유형을 사용하여 dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}를 확인합니다. 다음 경우 true를 반환합니다. 주어진 입력은 dict 유형이고 그렇지 않은 경우 false입니다.

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

출력:

my_dict is a dict: True

예: 클래스에 대한 isinstance() 테스트

이 코드는 isinstance()를 사용한 클래스의 유형 검사를 보여줍니다. 클래스의 객체는 isinstance() 내부의 클래스 이름과 비교됩니다. 객체가 클래스에 속하면 true를 반환하고 그렇지 않으면 false를 반환합니다.

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

출력:

_class is a instance of MyClass() True

type()과 isinstance()의 차이점 Python

유형() 인스턴스()
Python 입력으로 제공된 변수의 클래스 유형을 찾는 데 도움이 되는 type()이라는 내장 함수가 있습니다. Python isinstance()라는 내장 함수가 있는데, 이 함수는 값을 주어진 유형과 비교합니다. 주어진 값과 유형이 일치하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
반환 값은 유형 객체입니다. 반환 값은 부울, 즉 true 또는 false입니다.
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

출력:

True
False

유형의 경우 하위 클래스 검사는 false를 반환합니다.

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

출력:

True
True

isinstance()는 하위 클래스로 검사할 때 진실한 값을 제공합니다.

자주 묻는 질문

`type()`은 객체의 클래스를 반환하는 내장 함수입니다. 인수가 하나만 전달되면 객체의 타입을 반환하고, 세 개(이름, 기본 타입, 사전)가 전달되면 새로운 클래스를 생성합니다.

`isinstance(object, classtype)` 메서드는 객체가 특정 클래스 또는 클래스 튜플의 인스턴스인지 확인합니다. 타입이 일치하면 True를, 그렇지 않으면 False를 반환합니다.

`type()` 함수는 상속을 무시하고 객체의 정확한 클래스를 반환하는 반면, `isinstance()` 함수는 하위 클래스에 대해서도 True를 반환합니다. 클래스 계층 구조를 고려한 유연한 타입 검사를 위해서는 `isinstance()` 함수를 사용하세요.

네. type(name, bases, dict)를 세 개의 인자와 함께 호출하면 새로운 클래스 객체가 동적으로 반환됩니다. name은 클래스 이름이고, bases는 부모 클래스들의 튜플이며, dict는 속성들을 담고 있습니다.

네. `isinstance()`는 객체가 클래스 또는 해당 클래스의 하위 클래스의 인스턴스인 경우 True를 반환합니다. 따라서 상속된 타입을 확인할 때 `type()`보다 더 안전합니다.

GitHub Copilot과 같은 AI 비서는 type() 및 isinstance() 검사를 자동 완성하고, 유효성 검사 조건을 생성하며, 코드를 작성하는 동안 특정 객체에 대한 적절한 접근 방식을 제안합니다. Python.

예. AI 기반 도구를 사용하면 isinstance() 조건부 삽입을 자동화하고, 검증되지 않은 입력을 감지하며, 취약한 type() 비교를 코드베이스 전체에서 더 안전한 isinstance() 검사로 리팩토링할 수 있습니다.

`type()` 메서드는 해당 값에 대한 클래스 객체를 반환합니다. 리스트의 경우 `list`를, 딕셔너리의 경우 `dict`를 반환합니다. 출력 결과는 `class list` 또는 `class dict`와 같은 형식이 됩니다.

이 게시물을 요약하면 다음과 같습니다.