<NAVER boostcourse>
에서 수강한 강의를 바탕으로 정리한 내용입니다.First class obejct (일등함수, 일급객체)
- 변수 또는 데이터 구조에 할당이 가능한 객체
- 파라미터로 전달이 가능한 객체
- 리턴 값으로 사용할 수 있는 객체
파이썬의 함수는 일급 함수이다.
함수 내에 또 다른 함수가 존재하는 것
def generate_power(exp):
def wrapper(f):
def inner(*args):
result = f(*args)
return exp**result
return inner
return wapper
@generate_power(2)
def raise_two(n):
return n**2
refrigerator = []
lable = []
def add_milk(milk):
refrigerator.append(milk)
label.append('milk')
def add_veg(veg):
refrigerator.append(veg)
label.append('vegitable')
def add_meat(meat):
refrigerator.append(meat)
label.append('meat')
add_milk('서울우유')
add_veg('상추')
add_meat('삼겹살')
refrigerator = []
label = []
def add_item(func):
def wrapper(*args):
refrigerator.append(*args)
func(*args)
return wrapper
@add_item
def add_milk(milk):
label.append('milk')
@add_item
def add_veg(veg):
label.append('veg')
@add_item
def add_meat(meat):
label.append('meat')
print(refrigerator)
print(label)
> ['초코우유', '상추', '삼겹살']
> ['milk', 'veg', 'meat']
func
로 받아와야한다.*args, **kwargs
로 받아온다. func
함수를 파라미터와 함께 원하는 위치에서 실행시킨다.