인프런 커뮤니티 질문&답변

가나다라님의 프로필 이미지
가나다라

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

functions(1-2)

중첩함수 질문 수정

작성

·

175

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
def nested_func(num): #1
def func_in_func(num): #2
print(num) #3
print("In func") #4
func_in_func(num + 100) #5
nested_func(100) #6
 
 
수업 중 중첩함수에 관한 내용에서 #6를 먼저 받고 #1로 돌아가 num에 100이 입력된다는 것은 이해했습니다.
그런데 그다음에 #2로 가서 num에 100이 입력되지 않고 바로#4로 간다는 부분이 잘 와닿지 않습니다. 왜그렇게 되는건가요?

답변 4

0

1이 먼저 호출되어 실행되고

2로가서 num에 100이 할당되고

3은 아직 호출이 안되어 미실행,

4가 실행

5에서 func_in_func가 호출되어 실행

num은 +100되서 200이 되고

3이 실행되어 200이 출력

 

이 순서로 생각하면 맞을까요?

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

건너 띄는게 아니구요~

함수 내부안에 함수가 선언되어 있으니 정의가 된거라고 생각하시면 됩니다.

0

가나다라님의 프로필 이미지
가나다라
질문자

2,3번째줄은 왜 건너뛰는건가요?

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

네네 

# 5가 함수 내부에서 실행되고 4로 가서 두 번째 함수를 호출 하는 형태예요.

함수 실행이 () 된다고 가정하고 실행 부분만 따라다니면서 확인해 보세요.

가나다라님의 프로필 이미지
가나다라

작성한 질문수

질문하기