본문 바로가기
Coding/초보자를 위한 파이썬 300제

초보자를 위한 파이썬 300제 // 239 함수 예측하기

by 포스트it 2021. 3. 15.
728x90
반응형

 

문제

아래 코드의 실행 결과를 예측하라.

def 함수1(num) :
    return num + 4

def 함수2(num) :
    num = num + 2
    return 함수1(num)

c = 함수2(10)
print(c)

내풀이

결과값
16

정답

8번 함수2가 호출됩니다. 4번 라인으로 파이썬 인터프리터는 이동하고 이때 num에는 10이 바인딩됩니다.

5번 라인 코드를 실행하면 num이 12로 업데이트 됩니다.

6번라인의 코드를 실행하려고 하는데, 함수1이 호출됩니다. 1번 라인의 함수 정의부로 이동하며 num 값은 12로 바인딩됩니다.

2번 라인의 코드가 실행돼서 16이 반환됩니다.

함수1의 동작을 끝마치고 함수 2의 6번 라인으로 돌아오고 함수2도 return을 만나면서 16을 반환합니다.

8번 라인으로 돌아와 c 변수에는 16을 바인딩합니다.


음.....그냥 천천히 대입해가면서 하면 아마 어려움 없으실꺼에요 !
728x90
반응형

댓글