return을 하게되면 함수가 stack에서 사라지는 걸로 알고 있습니다.
179
작성한 질문수 5
안녕하세요 ! 크롤링 강의 이후에 웹 개발을 하고 싶어서 수강신청을 하게 됐습니다! 자바를 베이스로하고 있다가 파이썬의 신선한 공기를 마시며 왔다 갔다하며 재밌게 공부하고 있습니다 !
좋은 강의 감사드린다는 말씀 먼저 드리며 질문 시작하겠습니다 !
9:43초에 해당하는 내용입니다.
fn = outer_function(10)에서 outer_function함수에 인자값으로 10을 줬습니다. 그러면 num에 10이 전달된 것까지 이해했습니다.
결과값을 봤을 때 첫번째 호출에서 입력한 10이 print(num)에도 들어간 것처럼 보여지는데요, inner_func()함수를 호출해주지 않았는데 어떻게 그 안에 값이 들어가는지 이해가 안되네요 ㅠㅠ
그냥 들어가나보다..하기엔 조금 찝찝해서요 !
그리고,
outer_func(10)의 결과값으로 inner_func함수를 리턴해서 fn변수에 저장했습니다.
이때, outer_func(num) 함수가 리턴에 의해서 종료가 되면, 안에 남아있던 num(10)값이나, outer_func(num)메서드도 스텍에서 사라지는 걸로 알고있는데, print(fn())을 실행했을 때 어떻게 10이라는 값이 출력되는지 의아합니다...
답변 1
0
ㅎㅎ 신선한 공기 ㅎㅎ
outer_func(10) 을 호출해주면, 결과적으로 다음과 같은 코드로 해당 함수가 선언이 되고,
def inner_func():
print(10)
return 'complex'
해당 코드로 선언된 inner_func() 객체가 리턴된다고 보시면 좋을 것 같습니다.
그냥 변수로 넣은 값이 inner_func() 안에 값으로 변환되어 선언된다고 보시면 좋을 것 같습니다.
그 객체를 fn 변수가 가지고 있다가, 호출하면, 그대로 위의 10이 출력이 되는 것으로 이해하시면 좋을 것 같습니다.
함수는 보통 함수 호출이 끝나면, 내부 지역변수를 없어지는 것은 맞습니다.
그러나, 실제로 파이썬의 함수는 함수가 아니라 객체입니다. 그래서 객체 자체가 사라지지 않는 이상, 객체 내부의 attribute 는 사라지지 않습니다. 제가 유사한 답변을 이전에도 한 것 같아서, 그 부분도 찾아보셔도 좋고요.
감사합니다.
강의 자료 어디서 다운받나요? 없는데요..
0
150
1
강의 영상은 안나오고 소리만 나옵니다.
0
177
1
섹션 6 인증 failed 질문
0
153
1
섹션 8 flask 다양한 기능: 다양한 데코레이터 before_first_request 문의
0
358
3
192.168.0.12:8085??
0
154
1
04_flask_ABTest에서 blog_abtest.py 실행 시 오류입니다.
0
170
1
수업내용 질문 건
0
186
1
brew로 mysql 설치 후 서버 실행할 때, 터미널에서 anaconda bin 참조하는 문제
0
662
2
crossorigin 프로퍼티에 대해서 질문드립니다.
0
288
1
강의자료 다운로드 문의드립니다.
1
267
1
갑자기 웹 서버 띄울때 이상하게 나옵니다
0
313
1
가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다. (2)
0
345
1
가장빠른 Vue와 flask, 그리고 REST API 1 강의 질문입니다.
0
321
2
Fast api 추가 강좌 개설여부 질문드립니다!.
0
316
2
flask_cors설치 오류
0
618
2
부스트랩 html 다운
0
257
1
혹시 강의자료 공유가 가능한가요?
0
354
1
소스코드는 어디에 있을까요??
1
254
1
안녕하세요 몇가지 질문이 있습니다.
0
339
1
동적함수생성 질문드립니다.
1
630
2
(강의명) flask 로 Rest API 구현과 테스트 실행 : 오류 문의
0
575
1
백엔드 데코레이터 2 강의에 도전 문제 질문드립니다
0
287
1
몽고 DB 공식홈페이지 403 접속 에러 발생합니다.
1
623
3
04._flask_ABTest Pycharm 에서 실행오류
0
486
1





