type() vs isinstance()
type()
- 객체의 클래스 타입을 확인하는 함수
- 객체의 클래스를 반환
- 정확한 클래스 타입을 비교 → 상속 관계에 있는 경우에도 정확한 타입이 일치해야 'True'를 반환
isinstance()
- 객체가 특정 클래스의 인스턴스인지 여부를 확인하는 함수
- 객체가 해당 클래스의 인스턴스이면 'True', 그렇지 않으면 'False'를 반환
- 상속 관계만을 고려하여 'True'를 반환할 수 있음
예시
class A:
pass
class B(A):
pass
obj_b = B()
print(type(obj_b) is A) # False
print(type(obj_b) is B) # True
print(isinstance(obj_b, A)) # True
print(isinstance(obj_b, B)) # True
- 마지막 예시 설명 (print 4줄)
- obj_b는 A와 type이 다르다. (False)
- obj_b는 B와 type이 같다. (True)
- obj_b는 A의 instance이다. (True)
- obj_b는 B의 instance이다. (True)
'Python' 카테고리의 다른 글
[Python] requirements.txt에 링크 넣기 (0) | 2023.06.07 |
---|---|
[Python] Private PyPI Server 구성하기 (0) | 2022.04.28 |
[Python] PyPI 패키지 만들기 및 배포 (0) | 2022.04.27 |
[Python] 다른 경로에 있는 폴더/파일 import 하기(__init__, __all__) (0) | 2022.02.11 |
[Python] postgreSQL 연동하기 (0) | 2022.01.23 |