중첩 함수 (Nested function)
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
15. 중첩 함수 (Nested function)¶
- 함수 내부에 정의된 또 다른 함수
- 중첩함수는 해당 함수가 정의된 함수 내에서 호출 및 반환 가능
- 함수 안에 선언된 변수는 함수 안에서만 사용 가능한 원리와 동일 (로컬 변수)
In [1]:
def outer_func():
print('call outer_func function')
# 중첩 함수의 정의
def inner_func():
return 'call inner_func function'
# 중첩 함수 호출
print(inner_func())
In [2]:
outer_func()
초간단 연습1
outer_func() 함수의 출력을 보면서 왜 이렇게 출력이 되었는지 생각해보기~
outer_func() 함수의 출력을 보면서 왜 이렇게 출력이 되었는지 생각해보기~
In [3]:
# 중첩함수는 함수 밖에서는 호출 불가 (outer_func 함수 안에서 선언되었으니, outer_func 함수 안에서만 호출 가능)
inner_func()
그런데 중첩함수를 함수 밖에서도 호출할 수 있는 방법이 있다. 이 방법을 이해하기 위해 First-class function, closure 에 대해 다음 장에서 알아보자.¶
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
In [5]:
def outer_func(num):
# 중첩 함수에서 외부 함수의 변수에 접근 가능
def inner_func():
print(num)
return 'complex'
return inner_func
fn = outer_func(10) # <--- First-class function
print(fn()) # <--- Closure 호출