Python의 isinstance() 함수

1. 설명:

isinstance() 함수는 함수가 알려진 유형인지 확인하는 데 사용되는         type() 함수와 유사한 Python 내장 함수입니다 .

2. 사용법:

 isinstance ( 객체 ,classinfo)

  • 개체: 인스턴스 개체입니다.
  • classinfo : 직접 또는 간접 클래스 이름, 기본 유형 또는 이들로 구성된 튜플일 수 있습니다.

반환 값: 매개 변수 1의 유형이 매개 변수 2의 유형과 일치하면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

3. 예:

a = 2.0
 
print(isinstance(a,int))
print(isinstance(a,float))
print(isinstance(a,(str, int, list, float)))

================================================
False    # a是float类型,并非int类型,结果返回False
True     # a是float类型,结果返回True
True     # 是元组中的一个,结果返回 True

4. isinstance()와 type()의 차이점 

  • isinstance()는 하위 클래스를 상위 클래스 유형으로 간주하고 상속 관계를 고려합니다 .
  • type()은 하위 클래스를 상위 클래스 유형으로 간주하지 않으며 상속 관계도 고려하지 않습니다 .
 
class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

이때, A 객체를 생성한 후, A 객체를 상속하는 B 객체를 생성하고, A()와 A의 타입이 동일하므로 isinstance()와 type()을 사용하여 비교하면, 둘 다 반환됩니다. 사실입니다. B 객체는 A 객체를 상속하는데, isinstance() 함수를 사용하여 B()와 A를 비교하는 경우 상속 관계를 고려하므로 True를 반환하고, type() 함수를 사용하여 B()와 A를 비교하는 경우, B()가 어디에서 상속되는지 고려하지 않으므로 False를 반환합니다.

두 유형이 동일한지 확인하려면 isinstance()를 사용하는 것이 좋습니다.
 

Guess you like

Origin blog.csdn.net/m0_62278731/article/details/132687318