1. inspect란
파이썬에서 inspect는 말 그대로 **"검사하다, 들여다보다"**라는 뜻입니다.
inspect 모듈은 **파이썬 코드 속 객체들(함수, 클래스, 모듈 등)**을
마치 "X-ray처럼 들여다보는 기능"을 제공합니다.
1️⃣ 언제 사용하나요?
- 이 함수는 어떤 인자를 받는지 궁금할 때
- 내가 만든 함수에 기본값이 있었는지 확인하고 싶을 때
- 다른 사람이 만든 코드를 분석할 때
- 자동화 코드, CLI 툴, 데코레이터 만들 때
즉, 코드를 코드로 분석하고 조작할 때 inspect를 많이 씁니다
2. 예시로 이해 해보기
1️⃣ 함수의 매개변수 구조 확인하기
import inspect
def greet(name, age=20):
return f"Hi {name}, you are {age} years old."
# 함수에 어떤 인자가 필요한지 확인!
print(inspect.signature(greet))
출력:
(name, age=20)
마치 "함수의 사용 설명서"를 꺼내보는 느낌이죠!
2️⃣ 함수 소스코드 확인하기
print(inspect.getsource(greet))
출력:
def greet(name, age=20):
return f"Hi {name}, you are {age} years old."
다른 사람이 작성한 함수의 내용을 그대로 볼 수 있어요.
3. 이건 함수야? 클래스야?
class Person:
pass
print(inspect.isclass(Person)) # True
print(inspect.isfunction(greet)) # True
print(inspect.ismodule(inspect)) # True
inspect는 객체가 어떤 타입인지 자동으로 알려주는 도구 역할도 해요!
4. 예: 동적 함수 호출 전에 검사할 때
def run_task(task, **kwargs):
sig = inspect.signature(task)
print(f"이 함수는 이런 인자를 받아요: {sig}")
return task(**kwargs)
이렇게 하면, 함수에 어떤 인자를 넣어야 할지 미리 알 수 있어서 자동화나 동적 호출에 매우 유용합니다!
정리하면
inspect는 파이썬 객체(특히 함수나 클래스)의 속성, 구조, 원형, 소스코드 등을
프로그램 안에서 직접 분석할 수 있도록 도와주는 도구입니다.
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| 제너레이터 vs 이터레이터, 쉽게 이해하기 (0) | 2025.06.22 |
|---|---|
| 리스트 컴프리헨션, 어디까지 써야 똑똑한 걸까? (0) | 2025.06.22 |
| "로직"이란 정확히 무슨 뜻일까? (0) | 2025.06.10 |
| re.sub(패턴, lambda, 문자열) — 조건부 치환의 강력한 도구! (0) | 2025.06.07 |
| 네임 맹글링(Name Mangling)이란? (0) | 2025.06.06 |