일급개체와 클로저는 이터레이터, 제너레이터, 데코레이터를 이헤하기 위한 개념
일급객체
다른객체에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다.
특징
데이터처럼 사용이 가능하다.
매개변수에 넘겨줄수 있다.
리턴값으로 사용될수 있다.
파이썬에서는 함수도 일급객체이다.
# 1.데이터처럼 사용이 가능하다.
#1) 함수를 변수에 할당 가능
def function(x,y):
return x+y
#함수자체를 변수에 할당할수 있다.
add = function
print(add(3,4))
#2)리스트 튜플 딕셔너리 등 자료구조에 할당이 가능하다
def mul(x,y):
return x*y
def div(x,y):
return x/y
calculator = [mul, div]
print(calculator[0](2,4))
print(calculator[1](4,2))
# 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(10))