파이썬/기초 프로그래밍

파이썬 inspect 모듈, 쉽게 이해하기

Data Jun 2025. 6. 22. 14:30

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는 파이썬 객체(특히 함수나 클래스)의 속성, 구조, 원형, 소스코드 등을

프로그램 안에서 직접 분석할 수 있도록 도와주는 도구입니다.