✅ isinstance() 함수 완전 정복

2025. 5. 23. 16:06·기술블로그-Fastapi편

✅ isinstance() 함수 완전 정복

isinstance()는 Python에서 아주 자주 쓰이는 자료형 검사 함수야.
쉽게 말하면:

어떤 값이 특정 타입인지 확인하는 함수야.


🔧 기본 형식

isinstance(값, 타입)
  • 첫 번째 인자: 검사할 값
  • 두 번째 인자: 검사할 타입 또는 타입들의 튜플

🧪 사용 예제

print(isinstance("hello", str))   # ✅ True
print(isinstance(123, int))       # ✅ True
print(isinstance(123, str))       # ❌ False

🔄 여러 타입 동시에 검사할 수도 있어

print(isinstance(3.14, (int, float)))  # ✅ True

튜플로 여러 타입을 넘기면 그 중 하나라도 맞으면 True를 반환해.


⚠️ 자주 하는 실수

print(isinstance())  # ❌ TypeError 발생

isinstance()는 반드시 두 개의 인자가 필요해!
항상 (값, 타입) 구조를 따라야 해.


🎯 언제 사용하는가?

상황 사용 예

타입 검사 및 분기 처리 if isinstance(x, str):
타입 안전한 접근 전 확인 if isinstance(data, dict): data.get("key")
사용자 입력 검증 if not isinstance(age, int): raise TypeError()

💡 실무 팁

  • type()과 비슷하지만 isinstance()는 상속 관계까지 고려함 → 더 정확함
  • mypy와 함께 쓰면 정적 분석 + 런타임 안정성 확보 가능

😮 False는 int일까? — 놀라운 사실!

print(isinstance(False, int))  # ✅ True

🔍 왜 True일까?

>>> issubclass(bool, int)
True
  • Python에서는 bool이 int의 서브클래스로 구현되어 있음.
  • 그래서 True, False는 내부적으로 1, 0처럼 작동해.
int(True)   # 1
int(False)  # 0

True + 3    # 4
False * 10  # 0

✅ 요약 정리

표현 결과 이유

isinstance(False, int) ✅ True bool은 int의 하위 클래스
issubclass(bool, int) ✅ True 실제로 상속 구조가 있음
int(True) 1 True는 1처럼 작동
int(False) 0 False는 0처럼 작동

🔚 마무리 요약

  • isinstance()는 값의 타입을 안전하게 검사할 수 있는 함수.
  • 여러 타입을 튜플로 넘길 수 있고, 상속까지 고려함.
  • bool은 int의 자식 클래스라서 isinstance(False, int)는 True가 나온다!

필요하면 type()과의 비교, 클래스 상속 구조 시각화도 함께 정리해줄게 😎

'기술블로그-Fastapi편' 카테고리의 다른 글

👉 Python 개념 정리: 상수(Constant) 와 리터럴(Literal)  (0) 2025.05.26
📅 공공데이터포털 공휴일 API 사용법 총정리  (0) 2025.05.26
✅ Python 타입 힌트는 강제성이 있을까?  (0) 2025.05.23
✅ Git 브랜치가 왜 main이 아닌 master일까?  (0) 2025.05.23
🐧 WSL + Python 3.13 + Poetry + PyCharm 프로젝트 설정 가이드 (Windows)  (0) 2025.05.23
'기술블로그-Fastapi편' 카테고리의 다른 글
  • 👉 Python 개념 정리: 상수(Constant) 와 리터럴(Literal)
  • 📅 공공데이터포털 공휴일 API 사용법 총정리
  • ✅ Python 타입 힌트는 강제성이 있을까?
  • ✅ Git 브랜치가 왜 main이 아닌 master일까?
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (807)
      • Python (32)
      • 프로젝트 (116)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (42)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    chatgpterror
    chinanightlife
    college reunions
    life reflection
    smartphonedurability
    btsjungkook
    btsreunion
    RM
    livebroadcast
    remittance
    classaction
    basalcellcarcinoma
    self-growth
    btsdischarge
    lawsuitculture
    btscomeback
    bts
    hotcoffeecase
    youngprofessionals
    homebartrend
    trumpmuskclash
    global politics
    titaniumcase
    americaparty
    뷔
    americanlaw
    urbantrends
    newpoliticalparty
    gpterror
    travel ban
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
✅ isinstance() 함수 완전 정복
상단으로

티스토리툴바