def outer_func(num):
# 중첩 함수에서 외부 함수의 변수에 접근 가능
def inner_func():
print(num)
return '안녕'
return inner_func # 중첩 함수 이름을 리턴합니다.
closure_func = outer_func(10) # <--- First-class function
closure_func() # <--- Closure 호출
위의 예제에서 closure_func이 바로 closure 임
closure_func = outer_func(10) 에서 outer_func 함수는 호출 종료
closure_func() 은 결국 inner_func 함수를 호출
outer_func(10) 호출 종료시 num 값은 없어졌으나, closure_func()에서 inner_func이 호출되면서 이전의 num값(10)을 사용함
‼️ 조금 더 자세한 내용은