중첩 함수 (Nested function)
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
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 호출