def outer_func():
print('call outer_func function')
# 중첩 함수의 정의
def inner_func():
return 'call inner_func function'
# 중첩 함수 호출
print(inner_func())
outer_func()
call outer_func function call inner_func function
# 중첩함수는 함수 밖에서는 호출 불가 (outer_func 함수 안에서 선언되었으니, outer_func 함수 안에서만 호출 가능)
inner_func()
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-3-29421a275ed3> in <module>() 1 # 중첩함수는 함수 밖에서는 호출 불가 (outer_func 함수 안에서 선언되었으니, outer_func 함수 안에서만 호출 가능) ----> 2 inner_func() NameError: name 'inner_func' is not defined
def outer_func(num):
# 중첩 함수에서 외부 함수의 변수에 접근 가능
def inner_func():
print(num)
return 'complex'
return inner_func
fn = outer_func(10) # <--- First-class function
print(fn()) # <--- Closure 호출
10 complex