프로그래밍 언어에서 자주 나오는 개념 중 하나가 바로 일급 객체입니다. 어렵게 들리지만, 사실 핵심은 값처럼 자유롭게 다룰 수 있느냐에 있어요.
1. 일급 객체의 최소 조건 3가지
어떤 대상이 일급 객체라 불리려면 보통 아래 세 가지 조건을 만족해야 합니다.
- 변수에 담을 수 있다
- 함수의 인자로 전달할 수 있다
- 함수의 반환값으로 사용할 수 있다
이 3가지를 충족하면, 그 언어에서 해당 대상은 “일급 객체”입니다.
2. Python 예시로 보기
1️⃣ 변수에 담을 수 있다
def greet(name):
return f"Hello, {name}"
say_hello = greet # 함수 → 변수에 담기
print(say_hello("미영"))
# 출력: Hello, 미영
2️⃣ 함수의 인자로 전달할 수 있다
def run_twice(func, value):
return func(value) + " / " + func(value)
print(run_twice(greet, "ChatGPT"))
# 출력: Hello, ChatGPT / Hello, ChatGPT
3️⃣ 함수의 반환값으로 사용할 수 있다
def outer():
def inner():
return "나는 inner 함수!"
return inner # 함수 자체를 반환
f = outer()
print(f())
# 출력: 나는 inner 함수!
정리하면
- 일급 객체란 → 변수에 저장, 인자로 전달, 반환값으로 사용 가능한 객체
- 함수가 일급 객체라면, 함수도 숫자나 문자열처럼 자유롭게 다룰 수 있음
- 덕분에 고차 함수, 콜백, 함수형 프로그래밍 같은 강력한 기능이 가능해짐
'파이썬 > 기초 프로그래밍' 카테고리의 다른 글
| __call__ 재정의: 클래스도 함수처럼 사용하기 (1) | 2025.09.07 |
|---|---|
| functools.partial 사용법: 인수 고정 → 콜백 함수로 활용하기 (0) | 2025.09.07 |
| 파이썬 reduce로 배우는 누적 연산 (0) | 2025.09.07 |
| 파이썬에서 딕셔너리를 읽기 전용으로 만들기 — MappingProxyType (0) | 2025.09.07 |
| 파이썬 해시테이블 개념 및 튜플 → 딕셔너리 변환하기 (0) | 2025.09.07 |