• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

중첩함수 질문 수정

22.03.28 21:35 작성 조회수 132

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

창우님의 프로필

창우

2023.06.09

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

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

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

4가 실행

5에서 func_in_func가 호출되어 실행

num은 +100되서 200이 되고

3이 실행되어 200이 출력

 

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

0

건너 띄는게 아니구요~

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

0

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

0

네네 

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

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