Python의 type() 함수

type() 함수는 주로 디버깅 목적으로 사용됩니다. type() 함수에는 단일 인수와 세 개의 인수라는 두 가지 유형의 인수를 전달할 수 있습니다. 단일 인수 type(obj)이 전달되면 지정된 객체의 유형을 반환합니다. 세 가지 인수 유형(object, bases, dict)이 전달되면 새로운 유형 객체를 반환합니다.

Python type() 함수 구문

통사론: 유형(객체, 베이스, 사전)

매개변수:

  • 물체: 필수의. 매개변수가 하나만 지정된 경우 type() 함수는 이 객체의 유형을 반환합니다.
  • 기지 : 현재 클래스가 파생되는 클래스의 튜플입니다. 나중에는 __bases__ 속성에 해당합니다.
  • 사전: 클래스의 네임스페이스를 보유하는 사전입니다. 나중에 __dict__ 속성에 해당합니다.

반품: 새로운 유형 클래스 또는 기본적으로 메타클래스를 반환합니다.

type() 함수 작동 방식 파이썬에서?

주어진 예에서는 변수 x의 유형을 인쇄하고 있습니다. Python에서 객체의 유형을 결정합니다.

파이썬3




x> => 10> print> (> type> (x))>

산출

Python의 type() 함수 예

type() 함수를 사용하면 Python에서 객체의 유형을 확인할 수 있습니다. 다음은 type() 함수와 관련된 몇 가지 추가 예입니다.

Python 객체의 유형 찾기

여기서는 type() 함수를 사용하여 객체 유형을 확인합니다. 파이썬 .

파이썬3




a> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> b> => [> 'Geeks'> ,> 'for'> ,> 'Geeks'> ]> c> => {> 'Geeks'> :> 1> ,> 'for'> :> 2> ,> 'Geeks'> :> 3> }> d> => 'Hello World'> e> => 10.23> f> => 11.22> print> (> type> (a))> print> (> type> (b))> print> (> type> (c))> print> (> type> (d))> print> (> type> (e))> print> (> type> (f))>

산출

Python에서 객체 유형이 맞는지 확인하세요.

이 예에서는 조건을 사용하여 개체를 테스트하고 부울을 인쇄합니다.

파이썬3




print> (> type> ([])> is> list> )> print> (> type> ([])> is> not> list> )> print> (> type> (())> is> tuple> )> print> (> type> ({})> is> dict> )> print> (> type> ({})> is> not> list> )>

산출

True False True True True 

조건문과 함께 type() 사용

이 예에서는 type() 함수를 사용하여 조건부 if-else 문을 사용하여 Python에서 객체의 유형을 결정합니다.

파이썬3




# Example variables> my_tuple> => (> 10> ,> 'Hello'> ,> 45> ,> 'Hi'> )> my_dict> => {> 1> :> 'One'> ,> 2> :> 'Two'> ,> 3> :> 'Three'> }> # Check if the variables have the same object type> if> type> (my_tuple)> is> not> type> (my_dict):> > print> (> 'The variables have different object types.'> )> else> :> > print> (> 'The variables have the same object type.'> )>

산출

The variables have different object types. 

3개의 매개변수가 있는 Python type()

주어진 예에서 우리는 수업 기본 클래스와 기본 클래스에서 파생된 클래스가 없습니다. type() 함수를 사용하면 런타임에 클래스와 해당 속성을 프로그래밍 방식으로 정의할 수 있습니다.

파이썬3




# New class(has no base) class with the> # dynamic class initialization of type()> new> => type> (> 'New'> , (> object> , ),> > dict> (var1> => 'techcodeview.com'> , b> => 2009> ))> # Print type() which returns class 'type'> print> (> type> (new))> print> (> vars> (new))> # Base class, incorporated> # in our new class> class> test:> > a> => 'Geeksforgeeks'> > b> => 2009> # Dynamically initialize Newer class> # It will derive from the base class test> newer> => type> (> 'Newer'> , (test, ),> > dict> (a> => 'Geeks'> , b> => 2018> ))> print> (> type> (newer))> print> (> vars> (newer))>

산출

{'var1': 'techcodeview.com', 'b': 2009, '__module__': '__main__', '__dict__': , '__weakref__': , '__doc__': 없음}

{'a': 'Geeks', 'b': 2018, '__module__': '__main__', '__doc__': 없음}

Python type() 함수의 응용

  • 유형( ) 함수는 기본적으로 디버깅 목적으로 사용됩니다. 웹 크롤러에서 추출한 텍스트에 .upper(), .lower() 및 .split()과 같은 다른 문자열 함수를 사용하는 경우 문자열 함수를 지원하지 않는 다른 유형일 수 있으므로 작동하지 않을 수 있습니다. 결과적으로 디버깅하기가 매우 어려운 오류가 계속 발생합니다. [GeneratorType에는 lower() 속성이 없으므로 오류를 고려하십시오].
  • 유형() 해당 시점에서 함수를 사용하여 추출된 텍스트 유형을 결정한 다음 문자열 함수나 다른 작업을 사용하기 전에 이를 다른 형식의 문자열로 변경할 수 있습니다.
  • 유형() 세 개의 인수를 사용하면 속성이 있는 클래스나 기존 클래스를 동적으로 초기화하는 데 사용할 수 있습니다. 또한 데이터베이스 테이블을 등록하는데도 사용됩니다. SQL .
  • 단위 테스트 프레임워크에서는 type()> 함수나 메소드의 출력을 검증하여 예상되는 데이터 유형이 반환되는지 확인하는 데 사용할 수 있습니다.