일급객체
일급객체란?
일급 객체(First-class citizen)는 OOP에서 사용되는 개념 중 하나로 아래의 조건을 만족하는 객체를 의미합니다. 이는 추후 클로저(closure)와 데코레이터(Decorator)를 이해하는데 필수적인 개념이다.
- 데이터 처럼 사용가능하다.
- 매개변수로 전달할 수 있어야 한다.
- 리턴값으로 사용될 수 있어야 한다.
파이썬에서는 함수도 일급객체이다.
1. 데이터 처럼 사용가능하다.
함수를 변수에 할당 가능
def func(x, y):
return x+y
add = func
print(add(3,4))
함수를 리스트(튜플, 딕셔너리..)등의 자료구조에 할당 가능
def mul(x, y):
return x * y
def div(x, y):
return x / y
calculator = [mul, div]
print(calculator[0](5,6))
2. 매개변수에 넘겨 줄 수 있다.
def inputData():
data = input("데이터 입력>>>")
return data
def start(func): # 함수를 인자로 받음
print("입력한 데이터는", func())
start(inputData)
3. 리턴값으로 사용될 수 있다.
def plusTen(a):
return a + 10
def func(x):
return plusTen(x)
print(func(5))
결과
15